2017-04-13 136 views
1

我有一個動態生成的表,每行都有選擇控件。 每行都針對自定義驗證程序進行驗證。angular2錯誤消息不會消失

驗證器被擊中並且工作正常。

當涉及到根據驗證器的結果顯示錯誤信息我無法找出確切的表達式。此刻ERROR信息始終顯示。

enter image description here

我甚至刪除了所有的驗證邏輯返回null在所有times.Still沒有運氣 親切的問候。

模板:

<tr *ngFor="let kredi of krediList ; let i=index" [attr.rowindex]="i"> 
    <td>{{kredi?.erkenkapamatutari | number : '1.2-2' }} TL</td> 
    <td *ngIf="this.krediHesaplaAktif===true">  
     <select [(ngModel)]="kredi.talepedilenmahsuptipi" class="form-control input-xs" name="mahsuptipleriselect{{i}}" [krediTuruMahsupValidator]="validateKrediTuruMahsup(i)">       
     <option *ngFor="let m of mahsupTurleri" [ngValue]="m.id" [selected]="kredi.talepedilenmahsuptipi == m.id" > 
      {{m.name}} 
     </option> 
     </select> 
     <p style="color: red" *ngIf="!validateKrediTuruMahsup.valid" class="text-danger"> ERROR MESSAGE</p> 
    </td> 
    <td><button type="button" class="btn btn-danger btn-sm" (click)="taksitGoruntuleClicked(i)">Taksitleri Gör</button></td> 
</tr> 

驗證:

validateKrediTuruMahsup(selectedIndex: number) { 
     return <ValidatorFn>((control: FormControl) => { 

       return null;  
     }); 
} 

回答

1

validateKrediTuruMahsup方法返回null!nulltrue。這使得您的*ngIf="true"

+0

不是正確的響應,當控件成功通過驗證器指示輸入有效嗎? – desperado06

+0

@ desperado06我不是在判斷用法,我只是說爲什麼會發生:-)如果你想發送'null',你可以把'* ngIf'改成'* ngIf =「validateKrediTuruMahsup.valid」沒有'!' – echonax