需要在 Angularjs 应用程序中推迟观察输入模型直到鼠​​标离开或 Tab 键输入

need to postpone watch on input model till mouse leave or tab enter in Angularjs application

我正在使用带有单元格渲染器的 ag-grid 作为输入框,因为我在 ag-grid 中的 ng-blur 上触发事件时遇到问题,我尝试在输入框的 ng-model 上使用 $watch。现在,每当我对文本输入框进行更改时,该事件就会触发。但我在这里面临的问题是,假设我需要在文本框中输入 35,我输入的每个数字都会触发手表内的 computeStatus 功能。即,在输入 3 后 computeStatus 函数触发,然后如果我输入 5(完成 35)然后再次 computeStatus 函数触发。有什么办法可以推迟 computeStatus 的触发,直到我通过鼠标离开或 Tab 事件离开输入框。我花了很多时间使用 ng-blur 但事件根本没有触发所以最后我使用了这种方法但面临报告的问题。任何解决方案...

<input type="text" ng-model="assHrs" > 

$scope.$watch('assHrs', function(hrs) {
  computeStatus(hrs);        
  }, true);

如果您使用的是 Angular 的 1.3.x 版本,它有一个名为 ng-model-options 的指令,用于控制何时更新模型。

<input type="text" ng-model="assHrs" ng-model-options="{ updateOn: 'blur'}">

这只会在您离开输入时导致模型更新。