【问题标题】:How to get params with backbone router?如何使用骨干路由器获取参数?
【发布时间】:2015-10-26 08:05:21
【问题描述】:

我实际上得到了这样的参数:

http://localhost:9080/app?{%22address%22:%22rsPENV8NaobtaFqHmArDVVhDRRGVjmD5ep%22}

这条路线

routes: {
    "app":"app"
}

如你所见,它真的很丑,我想要这个简单的:

http://localhost:9080/app/rsPENV8NaobtaFqHmArDVVhDRRGVjmD5ep

或者类似的东西

http://localhost:9080/app/#/rsPENV8NaobtaFqHmArDVVhDRRGVjmD5ep

你看到了这个想法......

但是当我尝试 app/*address 或 app/:address 时,它不起作用,这意味着我无法捕捉到我的参数甚至页面。

所以基本上 /app 是服务器,如何在没有我使用的丑陋方式的情况下获取参数?

编辑:这是我在教程中找到的一个很好的例子:

routes: {

    "posts/:id": "getPost",
    // <a href="http://example.com/#/posts/121">Example</a>

    "download/*path": "downloadFile",
    // <a href="http://example.com/#/download/user/images/hey.gif">Download</a>

    ":route/:action": "loadView",
    // <a href="http://example.com/#/dashboard/graph">Load Route/Action View</a>

},

所以这里的问题是如何获得类似的东西

http://example.com/app/#/myparam

【问题讨论】:

    标签: backbone.js backbone-routing


    【解决方案1】:

    好的规则是分开你的路线。在你的情况下,我会做这样的事情:

    routes: {
        "p/:param_name": "getSomething"
    };
    
    ...
    getSomething: function(param_name) {
      ...
    }
    

    但如果真的不需要使用路由器中的特定区域,您应该将目标路由添加到路由的末尾。

    routes: {
        "p/:param_name": "getSomething",
        ...
        ":param": "getSomething"
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-10
      • 2012-09-23
      • 2013-11-27
      • 2012-06-12
      • 2012-06-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多