EmberJS-使用索引路由覆盖父模板

时间:2014-03-20 04:06:32

标签: javascript ember.js

我有以下路线结构。

App.Router.map(function() {
    this.resource('projects', function() {
        this.resource('listings', {path: '/:project_id/listings'}, function() {
            this.route('listing', {path: '/:property_code'});   
        });
    });    
});

我复制了这个结构并创造了一个小提琴。

小提琴:http://jsfiddle.net/aqHnt/6/

我希望路由器不言自明。我有一堆projects,每个都有一堆listings,每个listing都会有一些额外的细节。因为这些是嵌套资源,所以每个子资源都会呈现给它的父模板{{outlet}}

我需要的是完全覆盖父模板,并根据不同帖子中的建议,我使用资源index路由来实现此目的。

因此,如果单击某个项目,整个项目模板将替换为列表模板。到目前为止一切都很好,但我似乎无法通过列表实现相同的目标。当我点击列表时,我希望整个列表模板被列表详细信息替换。有人可以指出我在这里做错了什么。

1 个答案:

答案 0 :(得分:1)

这是一个可能的解决方案:jsfiddle

listings之外,您错过了listings/index模板,以及路线ListingsIndex。这样,您可以复制在application级别使用的相同模式。

您还可以考虑使用renderTemplate来指定呈现给定模板所需的outlet

希望它有所帮助!