2

我正在使用最新的第四版 ember。在我的应用程序中,我有一些部分未连接到路由器,但我想将所有应用程序保持在一种样式中ArrayControllerEm.CollectionView为它们使用和使用。

我试图做这样的事情:

var controller = Em.ArrayController.create({content: Em.A()});
Em.CollectionView.create({
    controller: controller 
});
controller.pushObject(Em.Object.create({
    title: 'test'
})) 

然后我得到一个错误,“控制器”没有容器属性。

ArrayController没有就可以使用Em.Router吗?

4

1 回答 1

1

对的,这是可能的。我无法重现您指定的错误,但必须进行一些更改才能使事情正常进行。

var controller = Em.ArrayController.create({content: Em.A()});
controller.pushObject(Em.Object.create({title: 'dr plimpton'}));
controller.pushObject(Em.Object.create({title: 'raj'}));
controller.pushObject(Em.Object.create({title: 'howard'}));
controller.pushObject(Em.Object.create({title: 'leonard'}));

var myView = Ember.CollectionView.create({
  tagName: 'ul',
  content: controller,
  itemViewClass: Ember.View.extend({
    template: Ember.Handlebars.compile("{{view.content.title}}")
  })
});

myView.appendTo('body');

工作示例(基于 ember-1.0.0-pre.4):http: //jsbin.com/eticuw/1/edit

于 2013-01-23T04:04:34.743 回答