2017-04-26 57 views
0

我有一个自定义的验证这样的:显示自定义的验证(AngularJs 1.6)

app.directive('checkRfc', function() { 
    return { 
    require: 'ngModel', 
    link: function(scope, element, attr, mCtrl) { 
     function checkRfcValidation(value) { 
     if (scope.clientForm.requireBill.$modelValue === "1" && value.length > 0) { 
      mCtrl.$setValidity('rfcOk', true); 
      //scope.examsForm.authorization.$setValidity("discountOk", true); 
     } 
     else { 
      mCtrl.$setValidity('rfcOk', false); 
      //scope.examsForm.authorization.$setValidity("discountOk", false); 
     } 
     return value; 
     } 

     mCtrl.$parsers.push(checkRfcValidation); 
    } 
    }; 
}); 

工作正常,但我必须进入相应领域的一些字符,则验证将被触发。有没有办法自动激活表单加载验证?

回答

0

你可以写在链接的功能如下

ngModel.$render = function() {.....} 

当模型第一次呈现,当模型从code.So改变它会解决,而值触发您的两个目的,此函数执行改变以及渲染。 希望它会有所帮助。

+0

感谢您的回答。你的意思是把checkRfcValidation函数放在ngModel中。$ render?另一个问题是,如果我这样做只使用ngModel。$ render这给了我以下错误消息:ngModel未定义 – gof

+0

是的,你可以在模型渲染时调用你的验证。对于错误,您必须将其插入链接somting中,如“link:function(scope,element,attr,ngModel){}”。现在定义了ngModel。 –