2017-04-26 87 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。 –