这是我的问题,假设我有一个具有以下余烬路线配置的余烬应用程序:
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中使用路由器的路径很简单,因为可以轻松自定义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有一个很小的演示。希望能有所帮助:)