Controller的计算属性在ember.js中调用(取决于checked属性)

时间:2013-12-20 15:36:03

标签: javascript ember.js

有一个例子in documetation。代码为here

文档说明 isCompleted 控制器的计算属性将使用参数调用,其值为 true false 取决于检查的输入属性的值

控制器如何自动知道输入的已检查属性是否已更改?我的意思是,当检查输入属性的状态发生变化时,调用控制器的cumputed属性是非常明显的。这个怎么运作?文档描述了这种行为?

非常感谢。

1 个答案:

答案 0 :(得分:2)

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

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

http://emberjs.com/guides/templates/input-helpers/

http://emberjs.com/api/classes/Ember.Checkbox.html

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'));
  }
});