【发布时间】:2013-12-16 18:21:53
【问题描述】:
我想在一个类中有一个计算属性,它依赖于同一类的一个属性(字符串数组)。我希望这个计算属性仅依赖于数组的特定元素。
实际上,我也不介意它是否依赖于数组的所有元素。
我有这样定义的余烬:
var UpdateController = Ember.ArrayController.extend({
PANE_1: 0,
PANE_2: 1,
PANE_3: 2,
init: function() {
this._super();
this.set('paneClass', ["center", "right", "right"]);
},
channelsPaneClass: function() {
return this.get('paneClass')[this.get('PANE_1')];
}.property('paneClass.@each'),
}
这个计算属性被用在一个模板中,如下所示:
<div {{bind-attr class=":sf-seg-pane channelsPaneClass"}}></div>
这会输出以下 html:
<div class="sf-seg-pane center"></div>
到目前为止,一切都很好。但是,如果我现在更改元素 paneClass[PANE_1] 的值,如下所示:
this.get('paneClass')[this.get('PANE_1')] = "xxx";
我期待 html 变成:
<div class="sf-seg-pane xxx"></div>
但事实并非如此。
我还尝试了什么:
- 我已尝试指定属性依赖项,例如
.property('paneClass')。 - 我尝试在模板中使用
{{bind-attr class=":sf-seg-pane paneClass[0]"}}。 - 我见过this,它概述了当我们的数组是对象数组时完成它的方法。我没有看到任何原始数据类型数组的示例。
【问题讨论】:
标签: ember.js