我有我的 View form.html
Size <select ng-model="size" ng-options...>[1..20]</select>
Limiter <select ng-model="limiter">[1..20]</select>
然后在 Controller form.js 中我有
$scope.$watch("limiter", function(newVal, oldVal) {
if (newVal !== oldVal) {
size=Math.min(limiter,size);
}
});
这一切都工作正常,现在我想添加一个 sizeMemory,因此如果限制器缩小了尺寸,但随后再次升高,那么尺寸将恢复原状。
这是我尝试过的,但是当限制器改变大小时,大小观察器也会改变sizeMemory。我需要更改此尺寸监视功能,以便它仅在用户手动设置尺寸值时运行:
sizeMemory = size;
$scope.$watch("size", function(newVal, oldVal) {
if (newVal !== oldVal) {
sizeMemory=size;
}
});
$scope.$watch("limiter", function(newVal, oldVal) {
if (newVal !== oldVal) {
wantedSize = Math.max(size,sizeMemory);
size=Math.min(limiter,wantedSize);
}
});
最佳答案
看来你只需要 ng-change ,当以编程方式更改模型时,它不会被触发。
关于javascript - 如何仅在用户更新字段时调用函数,而不是在动态更新字段时调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42595548/