gpt4 book ai didi

events - 如何为 AngularJS 创建 on-change 指令?

转载 作者:行者123 更新时间:2023-12-03 23:20:03 24 4
gpt4 key购买 nike

通常,每次用户按下键时,ng-model 都会更新绑定(bind)模型:

<input type="text" ng-model="entity.value" />

这几乎适用于所有情况。

但是我需要它在 onchange 事件发生时更新,而不是在 onkeyup/onkeydown 事件发生时更新。

在旧版本的 Angular 中,有一个 ng-model-instant 指令,其工作方式与现在的 ng-model 相同(至少对于用户而言——我对他们的实现一无所知)。
所以在旧版本中,如果我只是给了 ng-model,它正在更新模型 onchange,当我指定 ng-model-instant 时,它正在更新模型 onkeypup。

现在我需要 ng-model 用于元素的“更改”事件。我不希望它是即时的。最简单的方法是什么?

编辑

输入仍然必须反射(reflect)模型的任何其他更改 - 如果模型将在其他地方更新,则输入的值应反射(reflect)此更改。

我需要的是让 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;
});
}
});
}
};
});

关于events - 如何为 AngularJS 创建 on-change 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com