嵌套资源和路径

时间:2014-09-05 19:45:27

标签: javascript ember.js ember-router

我想在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' });
    );
});

感谢。

1 个答案:

答案 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挂钩重定向。