我有一个代码如下的模板:
{{# each p in controller itemViewClass="MyApp.SomeView" itemController="some" }}
// some stuff
{{/each}}
在我的itemViewClass中:
MyApp.SomeView = Ember.View.Extend({
attributeBindings: ['foobar'],
foobar: function() {
return this.get('stuff_from_the_model');
}
});
我已尝试过很多变种。使用property(),使用controller.model和其他一些东西。它似乎总是空的。有没有办法可以直接将模板中的值传递给此视图?或者还有其他方式吗?我需要的值对于模型的每个实例都是唯一的。
答案 0 :(得分:0)
首先,{{#each}}
与itemController
和itemView
绑定只是{{#collection}}
(Ember.js {{each}} vs {{collection}})。
在{{#each}}
帮助器中,itemView的角色扮演范围{{#each}}<pseudo-item-view>{{/each}}
中的代码。
看一个例子:http://emberjs.jsbin.com/yutaniyi/1/
其次,如果需要绑定到控制器/ etc的一个字段(路径),那么我们可以使用Em.computed.alias
来执行此任务(参见示例)。
答案 1 :(得分:0)
这有效:
attributeBindings: ['foobar'],
foobar: function() {
return this.get('controller.model.stuff_from_the_model');
}.property()