mvc模式分离javascript开发
一旦数据保存了,ajax完成后会触发控制器发出另一个隐藏指令来关闭dialog
无论怎样,在有些情况下view层也能够运行它自己的方法。比如一个view页面中有一个以slide形式展示的输入框,并且允许用户提取里面内容 的时候,view会自己处理交互操作的,让slide的内容显示出来,这个时候就不需要controller(控制器)来操作这个交互了。 The Controller现在,从 model层到view层数据是怎样获取到得呢?这就是通过controller层做的。controller激活是在事件发生以后,多半是在页面载入或 者用户发起的行为事件。一个事件处理程序被分配到一个controller(控制器)层的方法是做用户的竞标。 Controllers.EventsEdit = function(event) {
/* event is the javascript event, not our calendar event */ // grab the event target id, which stores the id var id = event.target.id.replace(/[^d]/g, ”); var dialog = new View.Dialog( Events.get(id) ); dialog.open(); } 当数据在在各种情况下使用的时候这种模式确实很方便。举个例子: Controller.EventsDelete = function(event) {
var id = event.target.id.replace(/[^d]/g, ”); View.Calendar.remove(id); Events.del(id); dialog.close(); } controller的行为就变得相对容易理解和简单了。这是建立可维护应用程序的关键。 Break it up(分解它)现在我们了解了怎样去分解我们的代码到他们的构成部分。让我们重新回来开始部分的表单验证的例子,我们怎样才能用MVC模式去设计它以达到最大灵活性。 Validating our Model(验证我们的模型)该模型确定数据是否正确或不使用的方法。它不关心如何呈现概要的视图。它只是需要报告哪些字段没有达到水平。 以前我们做过的那个例子当中,有一个简单的变量“ var MyModel = {
validate: function(data) { var invalidFields = []; for (var i = 0; i < data.length; i++) { if (this.metadata[data.key].required && !data.value) { invalidFields[invalidFields.length] = { field: data.key, message: data.key + ‘ is required.’ }; } } return invalidFields; }, metadata: { ‘other’: {required:true} } } |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |