Backbone.js路由中的变量:需要regex
Variables in Backbone.js routes: regex required?
我想要一个如下工作的主干路由设置:
- 像
/country/[any string]
这样的路由,其中country
是us
或ca
,应该都去handleByCountry(country, location)
- 任何其它路由都应当重定向到CCD_ 6并且由CCD_
目前我有(作为一个粗糙的第一次尝试):
var AppRouter = Backbone.Router.extend({
routes: {
"ca/:str": "handleByCountry",
"us/:str": "handleByCountry",
"*route": "home"
},
handleByCountry: function(str){
console.log('ROUTE handleByCountry', route);
// how to get the country? parse route by hand?
},
home: function(route){
this.navigate('/');
},
});
这有以下问题:
- 不是DRY-我可以写一个同时匹配
ca
和us
的路由吗?我需要某种条件变量,也许是正则表达式 - 如何从
handleByCountry
内部查看当前国家/地区?我需要再次解析路由字符串吗
此外,像我现在所做的那样,将其他路由转发到/
是否是一种良好的做法?
是的,您可以为ca和us 编写单一路由
routes: {
":country/:str": "handleByCountry",
"*route": "home"
},
handleByCountry: function(country, str){
console.log('country is:', country, ' and str is: ', str, route);
},
我们使用了类似的模式,以与重定向到主页相同的方式将所有未知的路由重定向到404,所以我相信这是正确的方法
如果需要更多的自定义路由,可以使用路由器初始值设定项中的路由方法将自定义正则表达式作为路由而不是骨干路由字符串传递。
相关文章:
- Datatables查询url字符串:需要regex来修复url解析
- 需要解释Javascript regex请求参数解析
- 我需要javascript替换regex方面的帮助
- jQuery regex从文本链接-添加不需要的域到链接
- Regex-我需要在第一个数字后面拆分一个字符串
- Javascript REGEX:需要从嵌入URL中检索ID以及开始和结束时间
- 需要简单解释JS中的RegEx模式
- Javascript split() Regex 表达式在 Chrome 中返回不需要的逗号
- Javascript regex.需要从 SVG 字符串中提取值
- javascript RegEx 检查字符串中的任何字母(虽然需要忽略其他字形 - 所以不仅仅是 0-9)
- REGEX 帮助需要可选值
- 需要了解为什么regex没有替换所有匹配项
- Backbone.js路由中的变量:需要regex
- 为什么regex构造函数需要进行双转义
- 需要regex的所有动态类别项目在node.js
- 需要Regex只允许4个数字和一个字母
- 需要Regex表达式的帮助
- 需要Regex表达式的帮助
- 需要RegEx来计算连字符分隔的值,其中第一个限制应始终小于第二个限制
- 需要regex进行表单验证,以避免出现多个特殊字符