我有以下路由设置:
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方法。)
答案 0 :(得分:5)
两个不同的路由不能拥有相同的资源名称,因为Ember更多地依赖于命名约定。但是Ember提供了重用相同控制器和模板的方法
将您在邮寄下的选择重命名为其他内容
this.resource('post',{path:":post_id"},function(){
this.resource('xxx',{path:"xxx/:returncontext"});
});
在路由器中,您可以指定必须重复使用的templateName
和controller
。这样的东西应该可以重复使用
App.xxxRoute = Em.Route.extend({
controllerName: 'selectimage',
templateName: 'selectimage'
});
示例Demo