如何使用CollectionView与connectOutlets连接?

时间:2012-12-20 11:39:35

标签: ember.js

目前我正在尝试在我的路由器和ConnectOutlets中使用CollectionView。我很好,如果我使用集合视图助手,但这与我的其他实现形成对比,我总是利用connectOutlets。

我基本上尝试的是:

connectOutlets : function(router){
  console.log("calling connectOutlets");
  router.get("applicationController").connectOutlet({
    viewClass : App.ItemsView,
    controller : App.itemController,
    context : content
  })
}

App.ItemsView = Ember.CollectionView.extend({
  itemViewClass : App.ItemView,
});

App.ItemsView是我的CollectionView子类。 App.itemController是我手动实例化的ArrayController。你可以在这里看到完整的小提琴:http://jsfiddle.net/mavilein/qS3aN/12/

但实际上这不起作用。我没有看到物品被渲染。使用集合助手可以正常工作,但在视图中设置绑定对我来说太静态了。 CollectionView不适用于connectOutlets吗?

1 个答案:

答案 0 :(得分:4)

看起来你可以做到这一点,但需要在ItemsView进行两次小调整:

App.ItemsView = Ember.CollectionView.extend({
   contentBinding: 'controller',
   itemViewClass : 'App.ItemView',
});
  • 由于CollectionView依赖于其content属性,因此必须将其绑定到其controller属性。 (此属性在connectOutlet时间连接)

  • App.ItemView之后定义ItemsView时,需要将其称为字符串,以便让Ember.js在ItemsView实例创建过程中查找它。

小提琴:http://jsfiddle.net/qS3aN/29/