目前我正在尝试在我的路由器和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吗?
答案 0 :(得分:4)
看起来你可以做到这一点,但需要在ItemsView
进行两次小调整:
App.ItemsView = Ember.CollectionView.extend({
contentBinding: 'controller',
itemViewClass : 'App.ItemView',
});
由于CollectionView依赖于其content属性,因此必须将其绑定到其controller属性。 (此属性在connectOutlet时间连接)
在App.ItemView
之后定义ItemsView
时,需要将其称为字符串,以便让Ember.js在ItemsView实例创建过程中查找它。