1

如果 url 在某处包含具有指定操作的参数,我如何匹配路由?喜欢 myaction/someparam1/someparam2/PleaseMatchMeIfYourFindMe/someparam3

4

2 回答 2

3

Backbone 的routes对象没有提供相当程度的灵活性。route但是,您可以使用以下方法手动添加路由正则表达式:

路线 router.route(route, name, [callback])

手动为路由器创建路由,route参数可以是路由字符串或正则表达式。

因此,您可以在路由器中执行以下操作:

initialize: function() {
    this.route(/^myaction\/.*PleaseMatchMeIfYourFindMe/, 'handler_method');
}

您当然必须调整正则表达式以符合您的实际要求。如果您想将正则表达式的一部分作为处理程序的参数,请根据需要添加捕获组。

演示:http: //jsfiddle.net/ambiguous/pFXr6/

于 2013-03-19T05:43:50.677 回答
-1

你的问题不清楚。您可以像这样在路由定义中使用参数:

var Route = Backbone.Router.extend({
    routes: {
        'myaction/:param1/:param2/:param3/:param4': 'myActionCallback',  
    }, 
    myActionCallback: function(param1, param2, param3, param){
       //your magic starts here
    }
于 2013-03-19T05:26:40.280 回答