我想在Ember中嵌套资源,但是能够使用简短的URL访问它们。
例如:mysite.com/admin将打开路线:/ routes / profiles / settings / admin
是否可以使用Ember做类似的事情? 我目前正在使用Ember 1.7和Ember App Kit。
我尝试了以下但不起作用:
var Router = Ember.Router.extend();
Router.map(function () {
this.resource('profile', function () {
this.resource('profile.settings', { path: '/settings' }, function () {
this.resource('profile.settings.admin', { path: '/admin' });
);
});
感谢。
答案 0 :(得分:2)
您的代码不起作用,因为您最内层的资源是从最外层资源继承/profile
路径,从中间资源继承/settings
。如果你想要它只是简单/admin
,你必须做这样的事情:
this.resource('profile', { path: '' }, function() {
this.resource('profile.settings', { path: '' }, function() {
this.resource('profile.settings.admin', { path: '/admin' });
});
});
但是,如果您有更多需要顶级路径的路线,这将变得非常繁琐。您可能会发现在顶层声明admin
路由更容易,然后使用路由中的redirect挂钩重定向。