1. 事件api
// 注册事件绑定
ndoo.on(
(string) eventName, // 事件名称
(fn) callback // 回调函数
)
// 触发事件
ndoo.trigger(
(string)eventName // 事件名称
[, data...] // 传递参数
)
// 移除事件
ndoo.off(
(string)eventName // 事件名称
)
可以一次绑定多个事件,多个事件之间用"空格"分隔。如 _n.on('event1 event2', callback);。
2. 事件类型
ndoojs的事件分为三种,分别为 default, delay, status,对应三种情况。声明时不区分事件类型,触发时通过事件前缀 DEFAULT、DELAY、STATUS触发不同事件。default事件为默认事件,可以省略前缀。
2.1 default 事件
default事件是普通事件,通过on绑定,trigger触发。示例:
ndoo.on('customEvent', function(foo, bar) {
alert(foo + bar);
});
ndoo.trigger('customEvent');
2.2 delay 事件
delay为延迟事件,即先用trigger触发的事件,可以引发后面用on绑定的回调。示例:
ndoo.trigger('DELAY:customDelayEvent');
ndoo.on('customDelayEvent', function(foo, bar) {
alert(foo + bar);
});
2.3 status 事件
status 为状态事件,当一个状态事件触发后,在事件触发前绑定的回调会执行,之后绑定的回调也会执行。示例:
ndoo.on('customStatusEvent', function(foo, bar) {
alert(foo + bar);
});
ndoo.trigger('STATUS:customStatusEvent');
ndoo.on('customStatusEvent', function(foo, bar) {
alert(foo + bar);
});
3. 系统事件
ndoojs自身实现了一件事件,具体如下:
STATUS:PAGE_STATUS_FAST // 最行被执行的事件
STATUS:PAGE_STATUS_DOMPREP // DOMLOADED事件之前触发
STATUS:PAGE_STATUS_DOM // DOMLOADED事件时触发
STATUS:PAGE_STATUS_DOMORLOAD // DOMLOADED事件之后触发
STATUS:PAGE_STATUS_LOAD // ONLOAD事件后触发
STATUS:PAGE_STATUS_ROUTING // 页面路由事件
STATUS:NAPP_DEFINE // 模块定义事件
NAPP_LOADED // 模块加载完成
STATUS:NBLOCK_INIT // 块组件定义事件
NBLOCK_LOADED // 块组件加载完成
NAPP_ACTION_BEFORE // 全局 action 前置事件
NAPP_ACTION_AFTER // 全局 action 后置事件
NAPP_[PREFIX]_ACTION_BEFORE // 针对特定模块的 action 前置事件
NAPP_[PREFIX]_ACTION_AFTER // 针对特定模块的 action 后置事件