ember.js 在成员中为现有路由添加父路由

hgncfbus  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(130)

这是我的问题,假设我有一个ember应用程序与以下ember路由配置:

Router.map(function() {
  this.route('todos', function() {
    this.route('new');
    this.route('view', {
      path: "/:id"
    });
  });
  this.route('articles', function() {
    this.route('view', {
      path: "/:id"
    });
    this.route('new');
  });
});

现在,我想根据要获取的一些用户信息为每个路由添加前缀。例如:下面是两个用户信息

dev = {
 id: 1, 
 workspace: 'DEV'
}
qa = {
 id: 2,
 workspace:'TEST'
}

一旦dev在应用程序中登陆,route必须如下所示:待办事项:

/DEV/todos/new

对于其他用户也是如此。一旦qa登陆到页面中,路由必须如下所示:

/TEST/todos/new

为了解决这个问题,我知道我们生成父路由并添加所有其它路由作为子路由,需要改变这种情况下的文件结构。
以下是Ember:

ember-cli: 2.13.3,
ember-data: 2.18.5
ut6juiuv

ut6juiuv1#

这是直接在Ember.js中使用路由器的路径,因为URL路径可以很容易地定制。
对于您的情况,todos路由应该有一个动态段(比如workplace),因此路由器条目将如下所示:

Router.map(function() {
  this.route('todos', { path: '/:workplace/todos' }, function() {
    this.route('new');
    ...
  });
});

如果您正在使用this.transitionTo('todos.new', 'TEST')转换到新的待办事项页面,则URL将更新为TEST/todos/new
This twiddle有一个很小的演示。希望对你有帮助:)

相关问题