emberjs/ember.js — Issue #485: Why does Checkbox#change use Ember.run.once?
Author: jbrown
Created: 2012-02-09 17:29:24+00:00
State: open

```javascript
Ember.Checkbox = Ember.View.extend({
// ...

change: function() {
Ember.run.once(this, this._updateElementValue);
// returning false will cause IE to not change checkbox state
},

_updateElementValue: function() {
var input = this.$('input:checkbox');
set(this, 'value', input.prop('checked'));
}
});
```

[Full source here](https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/controls/checkbox.js#L27)

I noticed the logic in Ember.TextSupport is essentially the same minus `Ember.run.once`.

```javascript
Ember.TextSupport = Ember.Mixin.create(
// ...

change: function(event) {
this._elementValueDidChange();
},

// ...

_elementValueDidChange: function() {
set(this, 'value', this.$().val());
}
});
```

[Full source here](https://github.com/emberjs/ember.js/blob/master/packages/ember-handlebars/lib/controls/text_support.js#L30)

Was this intentional? If yes, why? If not, what is the convention?