我在视图中有一个对象数组,它应该表示.hbs
中的动态字段数
所以数组是:
export default Ember.View.extend({
metadata_queries: [{name: '', type: 'Exists',
disableValue: true, queryValue:''}
/*, {...}, {...} */],
});
其余数组元素将动态添加
Ember.TextField
中.hbs
根据disableValue
需要被禁用(或隐藏 - 更容易)(通过观察绑定到的类型而改变) Ember.Select
。
代码:
{{#each view.metadata_queries}}
<div class="form-group">
<div class="col-xs-2 col-xl-2">
{{view Ember.Select content=view.metaTypes selection=type}}
</div>
<div class="col-xs-2 col-xl-2">
{{view Ember.TextField classBinding=":tests-query" value=queryValue disabled=disableValue}}
</div>
</div>
{{/each}}
问题是disableValue
不是属性 - 所以视图没有更新(我检查过 - 布尔本身确实发生了变化)
我该怎么做?
制作一个JSFiddle来举例说明: http://jsfiddle.net/6Evrq/400/
答案 0 :(得分:2)
嗯......我没有正确地更新disableValue
:
正确的方法是:
this.get('metadata_queries').forEach(function(item, index, metaQueries) {
Ember.set(item, "disableValue", item.type === "Exists");
});
答案 1 :(得分:1)
要使disableValue属性,它必须包装在Ember对象中,如此
metadata_queries: [Ember.Object.create({name: '', type: 'Exists',
disableValue: true, queryValue:''})
/*, {...}, {...} */],