是否有支持路由参数默认值的 JavaScript 路由库? 这是我所追求的示例
route = /example/{pagenumber}/{pagesize}
defaults = { pagenumber: 0, pagesize: 0}
这应该匹配以下所有路由并提供显示的值
- /example/ 与值 { pagenumber: 0, pagesize: 0} 匹配
- /example/1/ 与值 { pagenumber: 1, pagesize: 0} 匹配
- /example/1/5 与值 { pagenumber: 1, pagesize: 5} 匹配
最佳答案
我不知道有任何库具有默认参数,但您可以做的是在路由匹配时调用的处理函数中设置默认值。
假设 handlerFunc
已向路由器注册来处理路由 /example/{pageNumber}/{pageSize}
,并且路由器允许在路由中使用命名参数,并且足够智能来匹配以下 URL:
/示例
/example/1
/example/1/5
您的处理函数可以执行如下操作:
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]
访问其值。
关于具有默认值的 JavaScript 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28307432/