在我们的许多emberjs-apps中,我遇到了一些问题,从旧的AppKit结构更新到ember-cli 0.2.6和ember 1.12.1。在这个项目中,每个0x6F38C8 + 0x8 = 0x6F38D0
都会提出:
未捕获错误:断言失败:#each循环的值必须是数组。你传递了monopoto @ controller:array:,但它应该是一个ArrayController
为了达到本质,我将事情简化为:
foo.js:
{{#each item in myarray itemController="my-item"}}
foo.hbs:
export default Ember.Controller.extend({
myData: [1,2,3]
});
这很好用并提供:{{#each item in myData}}
{{item}}
{{/each}}
如果我添加这样的项目控制器:
FOO-item.js:
123
并修改{{each}}以使用该控制器:
export default Ember.Controller.extend({
foo: function(){
return "bar" + this.get("model");
}.property("model")
});
发生错误。
我在另一个ember项目上做了同样的事情,使用像这样的项目控制器一切正常。我在这两个项目上用几个ember版本测试了这个。一个人总是失败而另一个人总是工作。任何想法?
答案 0 :(得分:0)
控制器无法接受号码。它只能接受物体。 这应该有用。
export default Ember.Controller.extend({
myData: [{ value: 1 },{ value: 2 },{ value: 3 }]
});
答案 1 :(得分:0)
myData附加到您的控制器实例,而不是数组控制器。如果我正确理解您的问题,您需要执行以下操作:
{{#each ctl in controller itemController="foo-item"}}
{{ctl.foo}}
{{/each}}
如果这可以解决您的问题,请告诉我。