4

目前我正在尝试在我的路由器和 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 一起使用?

4

1 回答 1

4

看起来你可以做到这一点,但需要在以下位置进行两个小调整ItemsView

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

  • 正如您App.ItemView在 after中定义的那样ItemsView,您需要将其称为字符串,以便让 Ember.js 在 ItemsView 实例创建期间查找它。

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

于 2012-12-20T14:20:00.307 回答