加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-17 07:29:24 所属栏目:安全 来源:网络整理
导读:我非常喜欢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中提供的无效值上清除

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读