在ember中为现有路线添加父路线

时间:2019-11-15 14:13:32

标签: ember.js

这是我的问题, 假设我有一个具有以下余烬路线配置的余烬应用程序:

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降落到应用中,路线必须类似于: 待办事项:

/DEV/todos/new

,其他用户也一样。 qa进入页面后,路由必须类似于:

/TEST/todos/new

要解决此问题,我知道我们生成了父路由并将所有其他路由添加为子路由,因此需要更改这种情况下的文件结构。

这是灰烬:

ember-cli: 2.13.3,
ember-data: 2.18.5

1 个答案:

答案 0 :(得分:2)

这在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有一个很小的演示。希望能有所帮助:)