【问题标题】:Can't enter invalid view value when using ng-model-optios getterSetter使用 ng-model-optios getterSetter 时无法输入无效的视图值
【发布时间】:2016-07-20 23:27:53
【问题描述】:

如果我将ng-model-optiongetterSetter 与表单验证一起使用,那么我无法在输入中输入任何无效的内容。例如

HTML

<input type="number" ng-model-options="{getterSetter: true}" ng-model="ctrl.myVal" min="10">

JS

this.myVal = function(value) {
  if (value !== undefined) {
    this.actualVal = value;
  } else {
    return this.actualVal;
  }
};

https://plnkr.co/edit/dUPXiD1elGfqZSf9x9Bk?p=preview

使用该输入,我无法输入任何数字,因为它会小于 10。

我正在尝试获得与没有 getterSetter 时相同的行为。即:用户可以在视图中输入任何无效的输入,但只有输入有效时才会设置模型。

任何人都知道我可以使用getterSetter 进行表单验证的解决方法,或者任何人都可以解释为什么会这样吗?

【问题讨论】:

    标签: javascript angularjs angularjs-forms


    【解决方案1】:

    发生这种情况是因为传递给您的 setter 的 value 可能是 undefined,从而欺骗您的 getterSetter 将“setter”调用作为“getter”调用处理。

    将您的条件从 value !== undefined 更改为 arguments.length 将解决您的问题:Updated plnkr

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-19
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      相关资源
      最近更新 更多