Javascript 控制器';s ember.js中的计算属性调用(取决于选中的属性)

Javascript 控制器';s ember.js中的计算属性调用(取决于选中的属性),javascript,ember.js,Javascript,Ember.js,有一个例子。代码是 文档说明将使用参数调用isCompleted controller的computed属性,参数值为true或false取决于选中输入属性的值 控制器如何自动知道输入的属性已更改?我的意思是,当选中的输入属性的状态发生变化时,控制器的累计属性将被调用,这是非常不明显的。它是如何工作的?文档在哪里描述了这种行为 非常感谢。控制器不知道,输入助手将复选框绑定到传入的参数checked {{input type="checkbox" checked=isCompleted class

有一个例子。代码是

文档说明将使用参数调用isCompleted controller的computed属性,参数值为true或false取决于选中输入属性的值

控制器如何自动知道输入的属性已更改?我的意思是,当选中的输入属性的状态发生变化时,控制器的累计属性将被调用,这是非常不明显的。它是如何工作的?文档在哪里描述了这种行为


非常感谢。

控制器不知道,输入助手将复选框绑定到传入的参数
checked

{{input type="checkbox" checked=isCompleted class="toggle"}}


请仔细阅读这个问题。你的答案基本上是不对的。我很好地阅读了这个问题,我没有看到它是在控制器上定义的,你发送的模型和链接谈到了绑定到属性顶部。答案仍然存在。文档中的引用:“呈现此{input}时,它将要求控制器的isCompleted属性的当前值。当用户单击此输入时,它将调用控制器的isCompleted属性,参数为true或false,具体取决于输入的新检查值。”那么,你怎么能说控制器不知道选中状态的改变呢?我回应了你的陈述,即
自动知道
,它不自动知道,输入帮助程序将选中的值绑定到
isCompleted
,所以当ui改变时,输入帮助程序将绑定属性设置为复选框的状态
Ember.Checkbox = Ember.View.extend({
  classNames: ['ember-checkbox'],

  tagName: 'input',

  attributeBindings: ['type', 'checked', 'indeterminate', 'disabled', 'tabindex', 'name'],

  type: "checkbox",
  checked: false,
  disabled: false,
  indeterminate: false,

  init: function() {
    this._super();
    this.on("change", this, this._updateElementValue);
  },

  didInsertElement: function() {
    this._super();
    this.get('element').indeterminate = !!this.get('indeterminate');
  },

  _updateElementValue: function() {
    set(this, 'checked', this.$().prop('checked'));
  }
});