繁体   English   中英

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

[英]Backbone router - set a static part in url

我正在使用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'
 }

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

假设您已经正确设置了应用程序和路由器,则此方法应该可以正常工作:

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

如果这不起作用,我认为您将需要发布更多代码以获取帮助,因为这还远远不够。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM