Backbone.js路由器url包含参数

时间:2013-03-19 05:22:46

标签: javascript backbone.js backbone-routing

如果网址包含某个带有指定操作的参数,我该如何匹配路由? 喜欢myaction / someparam1 / someparam2 / PleaseMatchMeIfYourFindMe / someparam3

2 个答案:

答案 0 :(得分:3)

Backbone的routes objects没有提供那么高的灵活性。但是,您可以使用route method

手动添加路由正则表达式
  

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

     

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

所以你可以在路由器中做这样的事情:

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

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

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

答案 1 :(得分:-1)

你的问题不明确。您可以在路径定义中使用参数,如下所示:

var Route = Backbone.Router.extend({
    routes: {
        'myaction/:param1/:param2/:param3/:param4': 'myActionCallback',  
    }, 
    myActionCallback: function(param1, param2, param3, param){
       //your magic starts here
    }