当我们有一个控制器或ng-model-controller时,我们可以这样做
ctrl.$parsers.push(function(viewValue){
ctrl.$setValidity('valid', true);
});最后,会自动调用$digest并呈现验证。如果我想在模糊上验证一个字段,该怎么办?我就是这么做的
element.blur(function(){
[validations]
ctrl.$setValidity('valid', false);
})并且结果在元素ng绑定的html上不会改变,如何呈现这种改变?
发布于 2013-03-27 14:40:38
您必须在scope.$apply中调用ctrl.$setValidity('valid', false);
scope.$apply(function(){
ctrl.$setValidity('valid', false);
})发布于 2013-07-15 21:46:40
或者更好的是,为了避免进一步的问题,使用CSS来解决这个问题。让我们假设以下代码:
<textarea ng-model="description" ng-minlength="50"></textarea>
<span class="error" ng-show="myform.$error.minlength">Too short!</span>
<span class="error" ng-show="myform.$error.someOtherValidation">Err!</span>当您开始输入时,Angular开始验证,并出现错误(这有时是可取的,但更多情况下不是)。
为了不搞乱Angular的内部结构,你可以做一些CSS的魔术:
textarea:focus ~ .error {
display:none;
}波浪号是一个通用的同级选择器,所以只要你把你的字段集中起来,所有的错误都会隐藏起来。
https://stackoverflow.com/questions/15653115
复制相似问题