【问题标题】:Backbone.js router url contains parameterBackbone.js 路由器 url 包含参数
【发布时间】:2013-03-19 05:22:45
【问题描述】:

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

【问题讨论】:

    标签: javascript backbone.js backbone-routing


    【解决方案1】:

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

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

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

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

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 我知道标准示例模式。我不知道有什么不清楚的。如果 url 在我的操作之后包含指定的字符串,则匹配路由。
      猜你喜欢
      • 1970-01-01
      • 2013-10-14
      • 2011-10-22
      • 2012-12-04
      • 2012-03-27
      • 2012-03-24
      • 1970-01-01
      • 1970-01-01
      • 2012-10-12
      相关资源
      最近更新 更多