骨干路由器 - 在url中设置静态部分

时间:2013-10-29 14:51:44

标签: url backbone.js static routes set

我正在使用Backbone.js编写应用程序。我希望用户登录并创建此路线:

 www.example.com/#username

当她浏览应用程序时,我希望网址看起来像这样:

www.exmaple.com/#username/newroute

问题是我事先并不知道用户名,所以当我启动Backbone时,我可以将它添加到路由中。我已经尝试将变量传递给路由器,如下所示:

routes: {
    myVariableWithName : "route"
}

但是这个变量不能以我能想到的任何方式传递。

所以我尝试了不同的解决方案。当用户登录时,我会获得他的用户名并使用router.navigate(userName)来设置它。然后我在html中创建的每个链接都会有这样的名称:

 <a href="#username/route/"></a>
 routes: {
       'route/' : 'route'
 }

使用此功能时不起作用:

 routes: {
       'route/:id' : 'route'
 }

所以我的问题是,我应该怎么做?

1 个答案:

答案 0 :(得分:0)

假设您的应用和路由器设置正确,这应该可行:

var AppRouter = Backbone.Router.extend({
  routes: {
    'users/:id' : 'routeUser'    
  },
  routeUser: function(id) {
    // performs action
  }
});

如果这不起作用,我认为您需要发布更多代码才能获得帮助,因为这还不够。