【发布时间】:2013-03-19 05:22:45
【问题描述】:
如果 url 在某处包含具有指定操作的参数,我如何匹配路由? 喜欢 myaction/someparam1/someparam2/PleaseMatchMeIfYourFindMe/someparam3
【问题讨论】:
标签: javascript backbone.js backbone-routing
如果 url 在某处包含具有指定操作的参数,我如何匹配路由? 喜欢 myaction/someparam1/someparam2/PleaseMatchMeIfYourFindMe/someparam3
【问题讨论】:
标签: javascript backbone.js backbone-routing
Backbone 的routes objects 没有提供相当程度的灵活性。但是,您可以使用 route method 手动添加路由正则表达式:
路线
router.route(route, name, [callback])手动为路由器创建路由,
route参数可以是路由字符串或正则表达式。
所以你可以在你的路由器中做这样的事情:
initialize: function() {
this.route(/^myaction\/.*PleaseMatchMeIfYourFindMe/, 'handler_method');
}
您当然必须调整正则表达式以符合您的实际要求。如果您想将正则表达式的一部分作为处理程序的参数,请根据需要添加捕获组。
【讨论】:
你的问题不清楚。您可以像这样在路由定义中使用参数:
var Route = Backbone.Router.extend({
routes: {
'myaction/:param1/:param2/:param3/:param4': 'myActionCallback',
},
myActionCallback: function(param1, param2, param3, param){
//your magic starts here
}
【讨论】: