在EmberJS中使用“子控制器”

时间:2013-04-25 09:11:08

标签: ember.js

我在设计EmberJS布局时遇到了一些麻烦。我有一个观点分为两部分:

  • 左侧的内容库
  • 右侧的播放列表编辑器

目前,这两个元素共享同一个控制器。

我无法想象如何使用两个不同的控制器,以便能够在其他视图中重用内容库,甚至可以使用两个播放列表编辑器。

到目前为止,我的根视图看起来像这样:

<script type="text/x-handlebars" data-template-name="playlists">
    <div id="library">{{template library}}</div>
    <div id="playlistEditor">{{template playlisteditor}}</div>
</script>

我看到了关于{{control}}助手的文档,但它不稳定,我不确定这是我正在寻找的。

谢谢!

1 个答案:

答案 0 :(得分:1)

好的,我找到了答案,我必须使用{{render}}助手,就像那样:

<script type="text/x-handlebars" data-template-name="playlists">
    <div id="library">{{render "library" library}}</div>
    <div id="playlistEditor">{{render "playlisteditor" playlist}}</div>
</script>

然后,在我的路线中:

App.PlaylistsRoute = Ember.Route.extend({
  setupController: function(controller) {
     controller.set('playlist', playlist);
     controller.set('library', library);
  }
});

然后,此EmberJS将自动连接App.PlaylisteditorControllerApp.LibraryController以及观看playlisteditorlibrary。真棒。