我有一个看起来像这样的数据对象:
$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.onFocus = function(key) {
$scope.preventChange = key;
};
$scope.onBlur = function(key) {
$scope.preventChange = null;
};
然后,每当进行轮询和更新时,请检查您要更新的数据密钥是否为中的一个$scope.preventChange
,如果是,则不要更改它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句