我非常喜欢ng-model属性如何直接绑定到我的模型,用户可以获得有关其更改的即时反馈.对于我的用例来说,这是完美的.但是,我不希望将无效值放入模型中,它们可以在计算中输入扳手.我不知道如果表单控件中的值有效,我只想更新模型.对于无效值,当模型值保持固定时,控制值可以更改.
原文链接:https://www.f2er.com/angularjs/142150.html如果我改变了角度(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′,最后有效数字仍然显示在上面.也就是说,即使控件没有,模型也始终具有有效值.