这是我的问题, 假设我有一个具有以下余烬路线配置的余烬应用程序:
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
答案 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有一个很小的演示。希望能有所帮助:)