0

我正在使用带有单元格渲染器的 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);
4

1 回答 1

2

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

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

只有当您离开输入时,这才会导致模型更新。

于 2015-10-21T10:48:02.357 回答