在子视图里面的渲染路线

时间:2013-08-30 13:19:57

标签: ember.js separation-of-concerns

我一直在尝试清理我的一些代码,并希望将“侧边栏”部分重构为视图/模板组合,因为有些导航元素需要由渲染的子视图控制出口。

目前看起来像这样

Map (Route/View/Template)
  Sidebar (partial) - has {{outlet}}

Other routes render in Sidebar {{outlet}}

现在我想让侧边栏有一个View,而不仅仅是一个模板,因为我想根据在那里渲染的内容来控制一些UI更改。

这是一个jsbin,其示例不起作用。我也试过了{{render 'sidebar'}},但这也没用。顺便使用RC.8。

修改
另一次尝试here

1 个答案:

答案 0 :(得分:1)

侧边栏模板应该在应用程序模板中呈现(而不是索引模板),否则当您输入/ test路径时它不会显示。

然后在App.TestRoute的renderTemplate中,您可以在2个出口(侧边栏和主要)中渲染模板。

App.TestRoute = Ember.Route.extend({
  renderTemplate: function () {
    this.render('test');
    this.render('test_sidebar',{
      into: 'sidebar',
      outlet: 'sidebar'
    });
  }
});

请参阅此jsbin示例。

我希望它有所帮助。