通常,每次用户按下键时,ng-model都会更新绑定模型:
<input type="text" ng-model="entity.value" />
Run Code Online (Sandbox Code Playgroud)
这在几乎所有情况下都很有效.
但是当onchangeup/onkeydown事件发生时,我需要它来更新onchange事件.
在旧版本的角度中,有一个ng-model-instant指令,它与ng-model现在一样工作(至少对于用户来说 - 我对它们的实现一无所知).因此,在旧版本中,如果我刚刚给出了ng-model,它就是更新模型onchange,当我指定ng-model-instant时,它正在更新模型onkeypup.
现在我需要ng-model用于元素的"更改"事件.我不希望它是即时的.这样做最简单的方法是什么?
编辑
输入仍然必须反映模型的任何其他更改 - 如果模型将在其他位置更新,则输入的值应反映此更改.
我需要的是让ng-model指令像在旧版本的angularjs中一样工作.
以下是我正在尝试做的解释:http: //jsfiddle.net/selbh/EPNRd/
Sun*_*hah 20
在这里,我为您创建了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;
});
}
});
}
};
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
60380 次 |
| 最近记录: |