我有一个如下所示的数据对象:
$scope.data = { value1: 'anyValue', value2: 'anyValue'};
此数据对象将每秒通过轮询进行更新。
在视图中,我在输入字段中显示数据,如:
<input type="number" ng-model="data.value1"/>
<input type="number" ng-model="data.value2"/>
用户应该能够关注其中一个输入字段并输入值。现在这是不可能的,因为当数据对象更新时,字段中所做的每个更改都将被覆盖。
我不想暂停整个投票过程,因为其他输入字段仍应显示其更新值。
在聚焦时,仅暂停聚焦输入字段的绑定的最佳方法是什么?
答案 0 :(得分:1)
我建议你做以下事情:
<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.onFocus = function(key) {
$scope.preventChange = key;
};
$scope.onBlur = function(key) {
$scope.preventChange = null;
};
然后,无论何时进行轮询和更新,请检查您尝试更新的数据密钥是否为$scope.preventChange
中的数据密钥,如果是,请不要更改。