默认情况下,Angular似乎重新评估其从特定DOM元素(例如文本输入)到按键或粘贴的基础范围属性的绑定 - 即,只要文本输入中的值发生更改。
是否可以让它只刷新模糊的绑定?即做类似的事情:
<div ng-app>
<div ng-controller="ctrl">
<input type="text" ng-model="base" ng-update-type="blur"/>
<input type="text" />
<span ng-bind="doubled()" />
</div>
</div>
采取以下JS小提琴:
我希望双倍跨度仅在我将焦点移出第一个输入时更新
答案 0 :(得分:1)
您可以使用ng-blur
和虚拟变量(在这种情况下为base_
)来实现这一效果:http://jsfiddle.net/f76dW/1/
<input type="text" ng-model="base_" ng-blur="updateBase()" />
function ctrl($scope) {
$scope.base = $scope.base_ = 1000;
$scope.updateBase = function () {
$scope.base = $scope.base_;
};
$scope.doubled = function() {
return $scope.base * 2;
}
}
答案 1 :(得分:0)
使用ng-model选项。使用模糊黑客很棘手,因为模糊可能不会改变。
<input type="text" ng-model="a.b" ng-change="callScriptThenServer()" ng-model-options={updateOn: 'blur'}"/>