如何在Ember的itemViewClass中传递/获取模型数据?

时间:2014-03-22 06:54:38

标签: ember.js

我有一个代码如下的模板:

{{# 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和其他一些东西。它似乎总是空的。有没有办法可以直接将模板中的值传递给此视图?或者还有其他方式吗?我需要的值对于模型的每个实例都是唯一的。

2 个答案:

答案 0 :(得分:0)

首先,{{#each}}itemControlleritemView绑定只是{{#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()