具有默认值的JavaScript路由

时间:2015-02-03 19:46:05

标签: javascript url-routing

是否有支持Route参数默认值的JavaScript路由库? 这是我之后

之后的一个例子
route = /example/{pagenumber}/{pagesize}

defaults = { pagenumber: 0, pagesize: 0}

这应匹配以下所有路线并提供显示的值

  1. / example / 与值匹配 {pagenumber:0,pagesize:0}
  2. / example / 1 / 与值匹配 {pagenumber:1,pagesize:0}
  3. / example / 1/5 与值匹配 {pagenumber:1,pagesize:5}

1 个答案:

答案 0 :(得分:0)

我不知道任何具有默认参数的库,但您可以做的是在匹配路由时调用的处理函数中设置默认值。

假设handlerFunc已注册到路由器以处理路由/example/{pageNumber}/{pageSize},此外路由器允许路由中的命名参数,并且足够智能以匹配以下URL:

  1. /example
  2. /example/1
  3. /example/1/5
  4. 您的处理函数可以执行以下操作:

    function handlerFunc(params) {
        // If URL params were set, use them, otherwise use default value 0.
        var pageNumber = params.byName("pageNumber") || 0;
        var pageSize = params.byName("pageSize") || 0;
    
        // The rest of your code here ...
    }
    

    此代码假定params传递给handlerFunc,并且有一个名为byName的方法,它返回指定参数的值。如果params是一个简单的数组,您可以使用params[0]params[1]访问其值。