Ember Routing:在多个父路由下重用资源

时间:2013-11-14 10:19:43

标签: ember.js

我有以下路由设置:

this.resource('blog',function(){
    this.resource('selectimage',{path:"selectimage/:returncontext"},function(){});
});

this.resource('post',{path:":post_id"},function(){
    this.resource('selectimage',{path:"selectimage/:returncontext"},function(){});
});

我期望的是,当导航到blog.selectimage和post.selectimage时,将使用相同的路由器,控制器和视图。 不幸的是,似乎最后一个条目获胜。

在导航到选择性搜索时,是否可以在不离开父上下文(帖子/博客)的情况下实现这一点 (显然我可以从base-selectimages-classes继承,但是我希望有一些通用的ember方法。)

1 个答案:

答案 0 :(得分:5)

两个不同的路由不能拥有相同的资源名称,因为Ember更多地依赖于命名约定。但是Ember提供了重用相同控制器和模板的方法

将您在邮寄下的选择重命名为其他内容

this.resource('post',{path:":post_id"},function(){
   this.resource('xxx',{path:"xxx/:returncontext"});
});

在路由器中,您可以指定必须重复使用的templateNamecontroller。这样的东西应该可以重复使用

App.xxxRoute = Em.Route.extend({
  controllerName: 'selectimage',
  templateName: 'selectimage'
});

示例Demo