我知道ember不支持这个,因为http://emberjs.com/guides/routing/defining-your-routes/:“你不能嵌套路由,但你可以嵌套资源”
但是我想做的事似乎是合理的,所以我假设某个地方有支持。
这里的目标是建立一个这样的结构:
this.resource('project', { path: '/project/:project_id' }, function(){
this.route('manage', function(){
this.route('settings');
this.route('team');
this.route('notifications');
/* etc */
});
});
用语言来说,我希望有一个“管理”部分,其中包含您可以管理的内容的子部分,所有部分都引用了我的“项目”实例。
我可以这样做:
this.resource('project', { path: '/project/:project_id' }, function(){
this.route('manage.settings',{path : '/manage/settings'});
this.route('manage.team',{path : '/manage/team'});
/*etc*/
});
但失败的地方是:
任何帮助?
答案 0 :(得分:1)
为什么不使用嵌套资源?
this.resource('project', { path: '/project/:project_id' }, function(){
this.resource('manage', function(){
this.route('settings');
this.route('team');
this.route('notifications');
/* etc */
});
});
这与ember指南中描述的帖子/评论资源没有什么不同:http://emberjs.com/guides/routing/defining-your-routes/#toc_nested-resources
我希望有一个“管理”部分,其中包含您可以管理的内容的子部分,所有部分都引用了我的“项目”实例。
确定。因此,使用嵌套资源方法,您将拥有manage.hbs
模板。要从管理部分或任何子部分引用项目实例,只需使用needs
,如下所示:
App.ManageController = Ember.Controller.extend({
needs: "project",
projectBinding: "controllers.project"
});
有关详细信息,请参阅http://emberjs.com/guides/controllers/dependencies-between-controllers/。