如何使用骨干路由器获取params?

时间:2015-10-26 08:05:22

标签: backbone.js backbone-routing

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

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

使用此路线

routes: {
    "app":"app"
}

你可以看到它真的很难看,我想这么简单:

http://localhost:9080/app/rsPENV8NaobtaFqHmArDVVhDRRGVjmD5ep

或类似的东西

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

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

但是,当我尝试app / *地址或app /:地址时,它无法正常工作,这意味着我无法抓住我的参数甚至页面。

所以基本上/ 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

1 个答案:

答案 0 :(得分:0)

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

routes: {
    "p/:param_name": "getSomething"
};

...
getSomething: function(param_name) {
  ...
}

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

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