ember.js - 让 Ember.TextField 观察数组内属性的变化

标签 ember.js textfield

我在 View 中有一个对象数组,它们应该表示 .hbs 中的动态数量的字段 所以数组是:

export default Ember.View.extend({
  metadata_queries: [{name: '', type: 'Exists',
                     disableValue: true, queryValue:''}
                     /*, {...}, {...} */],
});

其余数组元素将动态添加

我在 .hbs 中有一个 Ember.TextField,需要根据 disableValue 禁用(或隐藏 - 以更容易的为准) (通过观察绑定(bind)到 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 不是一个属性 - 所以 View 不会更新(我检查过 - bool 值本身确实改变了)

我怎样才能做到这一点?

做了一个 JSFiddle 来举例说明: http://jsfiddle.net/6Evrq/400/

最佳答案

嗯...显然我没有正确更新disableValue:

正确的做法是:

this.get('metadata_queries').forEach(function(item, index, metaQueries) {
      Ember.set(item, "disableValue", item.type === "Exists");
    });

关于ember.js - 让 Ember.TextField 观察数组内属性的变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28363975/

相关文章:

ember.js - EmberJS RC6 路由器 Catch All

ember.js - 如何将 AMD 与 Ember.js 结合使用?

javascript - 我如何在 Ember.js 呈现之前修改页面?

javascript - 使用 JS 和 Canvas 创建网站构建器

flash - Button 内的实例名称有问题

java - 将 TextField 的文本绑定(bind)到某个对象 (JavaFX)

javascript - 创建未附加到商店的 Ember 模型实例

swift - 从 Swift (3.1) TableView 中动态创建的单元格获取有序文本字段数据

swift - 如何从另一个 ViewController 检查哪个 TextField 是 FirstResponder?

java - 如何在javafx中的TextArea中使用自动完成功能