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

问题描述 投票:0回答:1

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

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
ember.js
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.