在线报名 | 加入收藏 | 学校地图

电话:400-0379-707 QQ:710034203

首页 > 学习园地 > Java学习 > 正文阅读

Javascript Web应用开发之-MVC模式

发布时间:2012-11-22 17:08:54 点击:0
洛阳北大青鸟导读:MVC 是一种设计模式,它将应用划分为3 个部分:数据(模型)、展现层(视图)和用户交互层(控制器)。换句话说,一个事件的发生是这样的过程:  1. 用户和应用产生交互。  2. 控制器的事件处理器被触发。  ...

  这并不是说MVC 不允许包含视觉呈现相关的逻辑,只要这部分逻辑没有定义在视图之内即可。我们将视觉呈现逻辑归类为“视图助手”(helper):和视图有关的独立的小型工具函数。

  来看下面的例子,其在视图中包含了逻辑,这是一个反例,平时不应当这样做:

  // template.html

  ${ formatDate(this.date) }

  在这段代码中,我们把formatDate() 函数直接插入视图中,这违反了MVC 的原则,结果导致标签看上去像大杂烩一样不可维护。可以将视觉呈现逻辑剥离出来放入视图助手中,正如下面的代码就避免了这个问题,可以让这个应用的结构满足MVC。

  // helper.js

  var helper = {};

  helper.formatDate = function(){ /* ... */ };

  // template.html

  ${ helper.formatDate(this.date) }

  此外,所有视觉呈现逻辑都包含在helper 变量中,这是一个命名空间,可以防止冲突并保持代码清晰、可扩展。

  不要太在意视图和模板的细节,我们会在第5 章中有详细讲述。本小节的目的只是简单介绍视图和MVC 架构模式之间的联系。

  控制器

  控制器是模型和视图之间的纽带。控制器从视图获得事件和输入,对它们(很可能包含模型)进行处理,并相应地更新视图。当页面加载时,控制器会给视图添加事件监听,比如监听表单提交或按钮点击。然后,当用户和你的应用产生交互时,控制器中的事件触发器就开始工作了。

  不用使用类库和框架也能实现控制器,下面这个例子就是使用简单的jQuery 代码来实现的:

  var Controller = {};

  // 使用匿名函数来封装一个作用域

  (Controller.users = function($){

  var nameClick = function(){

  /* ... */

  };

  // 在页面加载时绑定事件监听

  $(function(){

  $("#view .name").click(nameClick);

  });

  })(jQuery);

  我们创建了users 控制器,这个控制器是放在Controller 变量下的命名空间。然后,我们使用了一个匿名函数封装了一个作用域,以避免对全局作用域造成污染。当页面加载时,程序给视图元素绑定了click 事件的监听。

热词搜索:
分享该网页到:   转播到腾讯微博  分享到QQ空间
  • ①理论课
  • ②上机课
  • ③职业导向训练(COT)
  • ④指导学习课(DLC)
  • ⑤项目案例课
  • ⑥在线培训课(OLTL)
  • ⑦阶段项目课
  • ⑧毕业设计课
人才招聘 | 视频专区 | 专题活动 | 认证查询 | 网站地图