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中提供的无效值上清除
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |