javascript - 如何仅在用户更新字段时调用函数,而不是在动态更新字段时调用函数

标签 javascript angularjs

我有我的 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/

相关文章:

javascript - Foundation CSS 中的选项卡

javascript - 关闭由批处理文件打开的 Chrome 浏览器窗口

javascript - 当我的php代码工作时如何使用这个加载页面插件(仅适用于js)?

javascript - AngularJS 选项卡示例和 IE8

javascript - 如何判断是哪一段 JavaScript 改变了给定的 HTML 标签?

JavaScript、HTML、JSP onClick 语句

javascript - 如何使用 js-xlsx 从 HTML 输入中读取文件?

angularjs - 使用 Express/Passport、AngularJS 和 ensureLoggedIn 的身份验证和路由在 "/"url 上不起作用

angularjs - Jackson + Spring web 在修改消息转换器后无法反序列化未引用的字符串

php - Laravel Api 路由加载失败。 404 未找到