Show:

Router Class

Module: router

一个类似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();
    });
});
  • Index
  • Methods

Methods

addTarget

(
  • target
)

Inherited from CustomEvent.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
)

全局路由配置

Parameters:

  • options Object

    配置对象

    • [caseSensitive] Boolean optional

      是否大小写敏感

    • [strict] optional

      是否严格要求路径末尾的反斜杠匹配

    • [urlRoot] optional

      配置针对支持html5 history的浏览器的根路径

    • [useHash] optional

      是否强制使用hash来处理路由即使在支持html5 histroy的浏览器下

    • triggerRoute Boolean

      如果目标路径与页面当前路径一致时,是否仍然触发相应的动作(如利用get函数指定的回调),若为真则replace也自动设为真

detach

(
  • eventType
  • fn
  • [scope]
)

Inherited from CustomEvent.Target

解除绑定的事件处理器

Parameters:

  • eventType String | Object
  • fn Function

    当事件触发时的回调函数

  • [scope] Object optional

    回调函数的 this 值. 如果不指定默认为绑定事件的当前元素

fire

(
  • type
  • eventData
)
Boolean

Inherited from CustomEvent.Target

触发绑定 type 类型的事件处理器, 并给触发的事件处理器的事件对象参数中混入数据 eventData

Parameters:

  • type String

    要触发的自定义事件名称

  • eventData Object

    要混入触发事件对象的数据对象

Returns:

Boolean:

如果其中一个事件处理器返回 false , 则返回 false, 否则返回最后一个事件处理器的返回值

get

(
  • routePath
  • callback1
  • [callback2]
  • ...
)

添加路由和对应的回调处理响应

Parameters:

  • routePath String | RegExp

    路由规则

  • callback1 Function

    第一个回调函数,接受三个参数 request,response,nextCallback ,如果调用 nextCallback 则进入传入的第二个回调函数

  • [callback2] Function optional

    第二个回调函数,可选,是否执行决定于第一个回调函数

  • ... Function

hasRoute

(
  • routePath
)
Boolean

判断路由规则是否存在已添加的路由规则中

Parameters:

Returns:

matchRoute

(
  • path
)
Boolean

判断一个url路径是否匹配已添加路由规则里面的任一规则

Parameters:

  • path String

    需要判断的url路径

Returns:

navigate

(
  • path
  • options
)

导航到具体路径

Parameters:

  • path String

    目标路径

  • options Object

    当前导航路径的配置对象

    • replace Boolean

      是否替换当前的历史记录

    • triggerRoute Boolean

      如果目标路径与页面当前路径一致时,是否仍然触发相应的动作(如利用get函数指定的回调),若为真则replace也自动设为真

on

(
  • eventType
  • fn
  • [scope]
)

Inherited from CustomEvent.Target

为相应事件添加事件处理器

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
)

Inherited from CustomEvent.Target

配置自定义事件的一些特有信息

Parameters:

  • type String

    要触发的自定义事件名称

  • cfg Object

    事件的具体配置对象

    • [bubbles=true] Boolean optional

      类型 boolean. 是否支持冒泡。 默认 true

    • [defaultFn] Function optional

removeRoute

(
  • routePath
  • [callback]
)

去除给定路由规则的回调函数或整个路由规则

Parameters:

  • routePath String | RegExp

    路由规则

  • [callback] Function optional

    需要去除的回调函数,可选。如果没有指定,则整个路由规则都会被去除

removeTarget

(
  • target
)

Inherited from CustomEvent.Target

删除冒泡事件源对象

Parameters:

  • target Object

    事件往上冒泡的事件源

start

(
  • callback
)

开启路由监听

Parameters:

  • callback Function

    路由成功开启后的回调

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} 调用这个函数则会继续去匹配子路由并执行相关回调,否则停止匹配