- Source:
这是Page的基类,所有Page的默认事件和流程都是在这里被定义
所有Page类通过xjs.declare
申明,并将widget
作为parents
参数传入,用以继承默认事件流程。
最后使用xjs.createView
实例化Page类
所有基类的函数都可以被重写(除了init
),重写后的事件可以调用this.super()
方法执行父类被覆盖的函数
widget的流程行顺序按照以下:
init—>render—>request—>syncGetData—>buildRender—>startup—>onExit
Members
(static) baseClass :string
- Source:
Page类的CSS Class Name
Type:
- string
(static) id :string
- Source:
实例化后的Page类id,此id是唯一的,可以用于xjs.byId
获取到This
对象
Type:
- string
(static) templateString :string
- Source:
传入模板字符串,基于underscore
的模板引擎渲染HTML
Type:
- string
(static) title :string
- Source:
定义Page的标题
Type:
- string
Methods
(static) buildRender()
- Source:
- See:
-
- {widget#request}
模板渲染流程,将会把this对象作为数据采集对象传入模板。并扫描模板里的自定义锚点后映射到this对象上
[data-xjs-element] 将挂载到this对象上,并通过$ + name 用以区分普通dom对象和jquery对象
Example
<div data-xjs-element="divNode"></div>
//this.divNode 获取原始dom对象
//this.$divNode 获取jquery对象
(static) init(dom)
- Source:
Page类的初始化函数,同时控制渲染事件的执行流程,此方法不可以被重写。
Parameters:
Name | Type | Description |
---|---|---|
dom |
根Dom节点,用于插入模板 |
(static) onExit()
- Source:
Page的退出事件,在路由切换被触发时调用,如果有添加事件监听需要自行注销,应该写在这个事件里, 如果你复写了这个函数,别忘了在function末尾调用this._super()
(static) request()
- Source:
request函数用于设置需要预先请求的数据队列,所有队列请求成功后才会执行后面的流程。 对zepto的ajax模块进行了二次封装,所有参数和$.ajax一致。ajax返回的数据将会根据app的名字挂载到this.data下
Example
request: function() {
return {
app: 'name', //在request之后的函数中可以用this.data.name获取到数据
url: 'example.do',
data: {}
}
}
//或者
request: function() {
return [{
app: 'app1', //在request之后的函数中可以用this.data.app1获取到数据
url: 'example.do',
data: {}
}, {
app: 'app2',
url: 'test.do'
}]
}
(static) startup()
- Source:
当模板和数据都被渲染后就会调用startup事件,Page里的Dom节点操作以及业务逻辑都应该在这里实现。