diff options
Diffstat (limited to 'src/widgets.js')
| -rw-r--r-- | src/widgets.js | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/widgets.js b/src/widgets.js index 3d034fc5..d9af21c9 100644 --- a/src/widgets.js +++ b/src/widgets.js @@ -526,23 +526,21 @@ function inputWidget(events, modelAccessor, viewAccessor, initFn, textBox) { var scope = this, model = modelAccessor(scope, element), view = viewAccessor(scope, element), - action = element.attr('ng:change') || noop, + ngChange = element.attr('ng:change') || noop, lastValue; if (model) { initFn.call(scope, model, view, element); scope.$eval(element.attr('ng:init') || noop); element.bind(events, function(event){ function handler(){ - scope.$apply(function() { - var value = view.get(); - if (!textBox || value != lastValue) { - model.set(value); - lastValue = model.get(); - scope.$eval(action); - } - }); + var value = view.get(); + if (!textBox || value != lastValue) { + model.set(value); + lastValue = model.get(); + scope.$eval(ngChange); + } } - event.type == 'keydown' ? $defer(handler) : handler(); + event.type == 'keydown' ? $defer(handler) : scope.$apply(handler); }); scope.$watch(model.get, function(scope, value) { if (!equals(lastValue, value)) { |
