Router Class
一个类似express的路由管理器
使用示例:
require(['node', 'router'], function($, Router){
Router.config({ //路由全局配置
triggerRoute: true, // 触发当前地址对应的 route 操作
urlRoot: location.pathname
});
Router.get('/', function(req, res, nextCallback){
//显示根目录内容
});
Router.get('/:path*', function(req){
//req.params.path => 'test'
//req.params[0] => '/test1/test2'
//req.parmas[1] => 'test1/test2'
});
Router.get('/detail/:id', function(req){
//req.params.id => 88
//req.query => { pa : 1, pe : 2 }
})
Router.navigate("/test/test1/test2");
Router.navigate('/detail/88?pa=1&pe=2');
Router.start(function(){
$('#loading').hide();
});
});
Item Index
Methods
addTarget
(
-
target
添加冒泡事件源对象
Parameters:
-
target
Object事件往上冒泡的事件源
Example:
require(['util', 'event/custom'], function(Util, CustomEvent) {
function Custom(id){
this.id = id;
this.publish("run",{
bubbles:1
});
}
Util.augment(Custom, CustomEvent.Target);
var c1 = new Custom("c1");
var c2 = new Custom("c1");
c1.addTarget(c2);
c2.on("run",function(e){
S.log(e.target.id +" fires event run"); // => c1 fires event run
});
c1.fire("run");
});
clearRoutes
()
清空所有路由规则及路由中间件
config
(
-
options
全局路由配置
detach
(
-
eventType
-
fn
-
[scope]
解除绑定的事件处理器
fire
(
Boolean
-
type
-
eventData
触发绑定 type 类型的事件处理器, 并给触发的事件处理器的事件对象参数中混入数据 eventData
Returns:
Boolean:
如果其中一个事件处理器返回 false , 则返回 false, 否则返回最后一个事件处理器的返回值
get
(
-
routePath
-
callback1
-
[callback2]
-
...
添加路由和对应的回调处理响应
on
(
-
eventType
-
fn
-
[scope]
为相应事件添加事件处理器
Parameters:
-
eventType
String | Object- 当为String时 包含一个或多个事件名称的字符串, 多个事件名以空格分开。 事件可以通过加点来表示分组,例如 "click.one" , "click.two"
- 当为Object时,类似这样:
{ 'click':{ fn:function(){ }, filter: '' // delegate, once:true // 绑定一次 }, 'mouseenter':function(){} }
-
fn
Function当事件触发时的回调函数
-
[scope]
Object optional回调函数的 this 值. 如果不指定默认为绑定事件的当前元素
publish
(
-
type
-
cfg
配置自定义事件的一些特有信息
removeRoute
(
-
routePath
-
[callback]
去除给定路由规则的回调函数或整个路由规则
stop
()
停止路由监听
use
(
-
prefix
-
callback
添加一个路由中间件
Parameters:
-
prefix
String前缀,符合该前缀的路由则进入回调。默认为 '' , 即默认都会进入回调
-
callback
Function回调函数,具有两个参数:
- request {Object} 请求信息对象
- query {Object} querystring对象
- backward {Boolean} 是否向后
- replace {Boolean} 是否替换历史记录
- forward {Boolean} 是否向后
- path {String} 相对prefix的路径,不包含querystring
- url {String} 相对prefix的路径,包含querystring
- originalUrl {String} 初始路径
- next {Function} 调用这个函数则会继续去匹配子路由并执行相关回调,否则停止匹配
- request {Object} 请求信息对象