如何绕过渲染ember.js中的父模板?

时间:2013-07-10 17:06:01

标签: javascript ember.js

我的ember应用程序中有嵌套路由的层次结构。我希望其中一个子路由绕过渲染它的父模板并直接渲染到应用程序模板中。但是,我仍然希望保留路由层次结构,因为我需要来自子路由中父路由的模型。我做的是我在子路由上定义renderTemplate钩子以呈现到application

renderTemplate: function() {
  this.render({ into: "application" });
}

这样可行,但是当我点击指向父路线的链接时,不会呈现任何内容。我把一个小jsfiddle放在一起来证明这一点:http://jsfiddle.net/H7gvz/1/ - 运行它,然后点击其中一个名字,然后点击"索引"。我希望PeopleRoute呈现people模板,但不会呈现任何内容。

这是一个错误还是我完全错了?这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:5)

每当您使用嵌套路由时,从子路由('people.show')转换到父路由('people')将被重定向到'index'路由。在App.PeopleIndexRoute中渲染“人物”模板将解决您的问题。

App.PeopleIndexRoute = Em.Route.extend({
renderTemplate: function() {
    this.render('people',{ into: "application" });

}  
});

您的工作fiddle