我有view.html文件

Size <select ng-model="size" ng-options...>[1..20]</select>
Limiter <select ng-model="limiter">[1..20]</select>


然后在控制器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/

10-10 00:01