Jquery Ember.js:如何渲染子路由';s视图进入应用程序并导航回父级';s路线

Jquery Ember.js:如何渲染子路由';s视图进入应用程序并导航回父级';s路线,jquery,ember.js,Jquery,Ember.js,用例是,我在{{outlet}}中显示了一个索引列表,并且我希望每个项目的详细视图都显示在“application”拥有的同一个outlet中。 这与以下方面无关: renderTemplate: (controller, model)-> this.render('show', { into: 'application' }); 但是问题是,当返回到索引页面{{{#linkTo'index'}}}index{{/linkTo}}时,索引视图将不再呈现 控制台抛出错误: 未捕获类型错

用例是,我在{{outlet}}中显示了一个索引列表,并且我希望每个项目的详细视图都显示在“application”拥有的同一个outlet中。 这与以下方面无关:

renderTemplate: (controller, model)->
this.render('show', {
  into: 'application'
});
但是问题是,当返回到索引页面
{{{#linkTo'index'}}}index{{/linkTo}}
时,索引视图将不再呈现

控制台抛出错误:
未捕获类型错误:无法调用未定义的方法“connectOutlet”

这里有一把小提琴再现了这个问题:


让所有我的子视图显示在应用程序的主出口中的正确方法是什么?

您需要做的就是将
show
路由转换为与
index
路由平行,而不是嵌套

App.Router.map ->
  @resource 'index', path: '/'
  @resource 'show', path: ':person_id'
问题在于
show
路由最初嵌套在
索引
路由中。
renderTemplate
调用使用
show
模板重写了原始的
index
模板,但Ember仍然希望
index
模板出现在层次结构中


您所需要做的就是将
show
路由转换为与
索引
路由平行,而不是嵌套

App.Router.map ->
  @resource 'index', path: '/'
  @resource 'show', path: ':person_id'
问题在于
show
路由最初嵌套在
索引
路由中。
renderTemplate
调用使用
show
模板重写了原始的
index
模板,但Ember仍然希望
index
模板出现在层次结构中


谢谢您的回答。我的目标是在对象类型的范围内维护show和其他子视图。例如,如果我有一个菜单项“动物”,那么我想要“猫”和“狗”的内部页面,但我仍然希望“动物”选项卡保持“活动”类等。事实证明,我在您的另一个答案中找到了一个更好的解决方案:感谢您的回答。我的目标是在对象类型的范围内维护show和其他子视图。例如,如果我有一个菜单项“动物”,那么我想要“猫”和“狗”的内部页面,但我仍然希望“动物”选项卡保持“活动”类等。事实证明,我在您的另一个答案中找到了更好的解决方案: