通常ng模型每次用户按下键时更新绑定的模型:
<input type="text" ng-model="entity.value" />
这在几乎每一种情况下都很好用.
但是,当onchange事件发生时,需要更新,而不是onkeyup / onkeydown事件.
在老版本的角色中,有一个ng-model-instant指令与ng-model工作相同(至少对于用户来说 – 我不了解它们的实现).
所以在旧版本中,如果我只是给了模型,它正在更新模型onchange,当我指定ng-model-instant它是更新模型onkeypup.
现在我需要ng-model来使用元素的“change”事件.我不想让它瞬间最简单的做法是什么?
编辑
输入仍然必须反映模型的任何其他变化 – 如果模型将在其他位置更新,则输入值应反映此变化.
我需要的是使ng-model指令工作就像在老版本的angularjs中一样工作.
这是我要做的事情的解释:
http://jsfiddle.net/selbh/EPNRd/
这里我为你创建了onChange指令.演示:
http://jsfiddle.net/sunnycpp/TZnj2/52/
app.directive('onChange',function() { return { restrict: 'A',scope:{'onChange':'=' },link: function(scope,elm,attrs) { scope.$watch('onChange',function(nVal) { elm.val(nVal); }); elm.bind('blur',function() { var currentValue = elm.val(); if( scope.onChange !== currentValue ) { scope.$apply(function() { scope.onChange = currentValue; }); } }); } }; });