AngularJS-聚焦时暂停输入字段绑定

AngularJS-聚焦时暂停输入字段绑定,angularjs,Angularjs,我有一个如下所示的数据对象: $scope.data = { value1: 'anyValue', value2: 'anyValue'}; 此数据对象将通过每秒轮询进行更新 在视图中,我在输入字段中显示数据,如: <input type="number" ng-model="data.value1"/> <input type="number" ng-model="data.value2"/> 用户应该能够聚焦其中一个输入字段并输入值。现在这是不可能的,因为当

我有一个如下所示的数据对象:

$scope.data = { value1: 'anyValue', value2: 'anyValue'};
此数据对象将通过每秒轮询进行更新

在视图中,我在输入字段中显示数据,如:

<input type="number" ng-model="data.value1"/>
<input type="number" ng-model="data.value2"/>

用户应该能够聚焦其中一个输入字段并输入值。现在这是不可能的,因为当数据对象更新时,字段中的每一个更改都将被覆盖

我不想暂停整个轮询过程,因为另一个输入字段仍应显示其更新的值


在聚焦时,暂停聚焦输入字段绑定的最佳方法是什么?

我建议您执行以下操作:

<input type="number" ng-model="data.value1" ng-focus="onFocus('value1')" ng-blur="onBlur('value1')"/>
<input type="number" ng-model="data.value2" ng-focus="onFocus('value2')" ng-blur="onBlur('value2')"/>

然后,每当您进行轮询和更新时,请检查您尝试更新的数据键是否在
$scope.preventChange
中,如果是,请不要更改它

Angular 1.3似乎已经提供了一个解决方案:使用
,因为轮询仍然会更新数据,所以如果您在其中键入内容,它将每秒被覆盖。但它的工作原理和亚龙说的一样。
$scope.onFocus = function(key) {        
    $scope.preventChange = key;
}; 

$scope.onBlur = function(key) {        
    $scope.preventChange = null;
};