angularjs – 不使用ng-model记录无效值

前端之家收集整理的这篇文章主要介绍了angularjs – 不使用ng-model记录无效值前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我非常喜欢ng-model属性如何直接绑定到我的模型,用户可以获得有关其更改的即时反馈.对于我的用例来说,这是完美的.但是,我不希望将无效值放入模型中,它们可以在计算中输入扳手.我不知道如果表单控件中的值有效,我只想更新模型.对于无效值,当模型值保持固定时,控制值可以更改.

如果我改变了角度(1.2rc)NgModelController的$setViewValue实现的来源:

this.$setViewValue = function(value) {
...
  if (this.$modelValue !== value) {
    this.$modelValue = value;
    ...
  }
};

对此:

this.$setViewValue = function(value) {
...
  if (this.$modelValue !== value && this.$valid) {
    this.$modelValue = value;
    ...
  }
};

它似乎完全符合我的要求,但我不知道如何以正确的方式做到这一点.改变这种行为的正确方法是什么?或者我的尝试注定会因某种原因失败?

更新:添加了示例.

例如,查看http://jsfiddle.net/FJvgK/1/ HTML:

<div ng-controller="MyCtrl">
    {{validNumber}}
    <form>
        <input 
            type="number"
            ng-model="validNumber"
            required
            min="10"
            max="20" 
        />
    </form>
</div>

和JS:

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.validNumber = 15;
}

数字显示正确的10到20之间的值,但我想要它,如果你突然在框中键入’8′,或删除第二个数字留下’1′,最后有效数字仍然显示在上面.也就是说,即使控件没有,模型也始终具有有效值.

我相信AnugularJS验证器的默认行为是,如果传递的值无效,则不更新模型.如果您查看 developer guide并进行自定义验证,这些示例还会显示模型未更新或在UI中提供的无效值上清除
原文链接:https://www.f2er.com/angularjs/142150.html

猜你在找的Angularjs相关文章