2017-03-20 65 views
0

有網上在Angularjs .directives鏈接功能的許多例子來操縱與在angularjs 1.5組件設置有效期

require: 'ngModel', 
link: function(scope,elem, attr,ctrl){ 
    ctrl.$setValidity('element-name', false); 
// and setting has-error 
    elem.parent().hasClass('has-error'); 

的DOM上Angularjs 1.5 ES5 .component是如何做這方面的工作?

我看到你可以注入$element,$attrs,雖然沒有人使用它們的例子或者如何注入ngModel作爲ctrl來用於設置有效性。我錯過了一些超級簡單的東西,每個人都知道如何做到這一點,或者沒有人嘗試過在組件中使用這些東西。

+0

This StackOverflow post should should help you http://stackoverflow.com/questions/36721551/how-to-set-validity-in-directive-angularjs –

+0

@Pramod_Para我說不是'.directive'我正在努力完成這在一個組件中。或者這只是某個組件無法完成的事情。 – mjwrazor

+0

你的意思是不使用任何角度分量? –

回答

1

是的,您可以在angular.component中設置有效性。但是它不支持鏈接功能,您可以使用它來設置有效性。但是有一種替代解決方案可以用來設置驗證,這基本上涉及將元素嵌入到表單標記中。您可以在組件的控制器工廠功能中獲得此表單參考,並設置有效性。

+0

以防萬一人們想知道如何爲輸入提供錯誤或成功大綱。這取決於你使用的是什麼。我使用bootstrap,因此我把'ng-class =「{'has-error':$ ctrl.formName.inputName。$ invalid,'has-success':$ ctrl.formName.inputName。$ valid}」,這個$ onInit' fn會改變輸入的有效性。 – mjwrazor

+0

以及我的組件中的表單項的連接。 'this.formName.inputName。$ setValidity('formName,inputName',false)'表示無效。 – mjwrazor