跳转到内容

控制器

概述

控制器是处理特定页面上特定功能的特殊模块。它们不一定可以在不同的上下文中重用,尽管有些可能可以。控制器在单个元素上初始化,该元素成为控制器的范围.控制器响应用户事件(例如点击)以及由UI小部件或子控制器触发的事件,并操纵其范围元素。

控制器功能的范围是完全灵活的。控制器可以在页面的一个非常小的片段上初始化,并只执行一项任务,也可以在应用于整个页面的主包装器和句柄功能上初始化。控制器可以在一个元素上初始化,即使它是另一个元素的后代这是一种常见的模式,子控制器可以发出父控制器可以响应的事件。

通常,让控制器只关注页面的一个方面。如果一个控制器最终处理的是不同且不相关的功能,那就把它拆分成更小的控制器。

创建一个控制器

控制器的注册方式与标准模块略有不同;相反,将对象文字传递给方法ips.controller.register:

;(作用($,_,未定义的){“严格使用”;ips控制器登记(“type.controllerID”,{初始化:作用(){//控制器事件在这里初始化}});} (jQuery,_));

至少是一个控制器,必须定义一个初始化方法,当控制器在元素上初始化时调用该方法。这个初始化方法应设置仅由该控制器处理的事件;如果需要其他初始化任务,建议定义设置方法,并在初始化方法。

在控制器定义中,指控制器实例。这意味着可以使用在内部调用控制器方法this.someMethod()。

对初始化控制器的元素的引用(其)范围)可用范围属性:

//隐藏元素的例子范围隐藏();

方法和属性名

为清晰起见,建议使用事件处理程序方法名(例如,在初始化)没有下划线前缀,而控制器的其他方法和属性则有下划线前缀。这有助于明确区分控制器的核心功能(事件处理程序)和支持方法。

处理事件

事件处理是控制器的核心功能。有三种特殊的方法可用于观察和触发事件。其中两个以它们的jQuery对应对象命名,但添加了特定于控制器的行为。

这是我的

用于观察和响应事件。

([元素初步的,]字符串事件类型(,选择器代表],作用回调);
  • 初步的
    对将监视事件的元素的引用。如果不指定,this.scope默认使用。
  • 事件类型
    正在关注的事件。这可以是默认的浏览器事件,如点击,或来自小部件和模型的事件,例如menuItemSelected
  • 代表
    可以选择指定委托选择器。看到jQuery文档为更多的信息。
  • 回调
    一个回调函数,当观察到此事件时调用。这里指定的函数是自动绑定到,因此内部方法可以通过简单的引用来传递,如下所示:
    (“点击”,internalMethod);

this.trigger

用于发出起源于此控制器的事件(特别是范围元素)。

触发([元素初步的,]字符串事件类型(,对象数据]);
  • 初步的
    对将触发事件的元素的引用。如果未指定,this.scope默认使用。
  • 事件类型
    事件被触发。
  • 数据
    一个包含与事件相关数据的对象。

这是triggerOn

用于从父控制器直接在子控制器上发出事件。

三角龙(字符串controllerName,字符串事件类型(,对象数据]);
  • controllerName
    要查找并触发事件的控制器名称。该参数后面支持通配符*,所有匹配的控制器都会触发该事件。例子:
    core.front.core.comment core.front.core.*core*
  • 事件类型
    事件被触发。
  • 数据
    一个包含与事件相关数据的对象。
编辑里基

报告指南


×
×
  • 创建新的。。。
Baidu