2017-06-21 16 views
0
I have the following code on angular 
<div *ngFor="let student of students.controls; let i=index" [formGroupName]="i" [class.active]="student.checked"> 
    <!-- The repeated address template --> 
    <h4>Student #{{i + 1}} 
     <input type="checkbox" formControlName="checked" [(ngModel)]="student.checked"> 
    </h4> 
    <div class="form-group"> 
     <label class="center-block">First Name: 
      <input class="form-control" formControlName="firstName"> 
     </label> 
    </div> 
    <div class="form-group"> 
     <label class="center-block">Last name: 
     <input class="form-control" formControlName="lastName"> 
     </label> 
    /div> 
</div> 

here is my css 

`div.active{ 
    background-color:#CCFFCC !important; 

} 
` 

私は[(ngModel)] = "student.checked"を削除しても、背景色が変わることはありませんが、formControlNameが "checked"で動作します。プロパティはtrueにチェックされ、ボックスはチェックされませんが、チェックするとバックグラウンドはgになりますreenformControlとngModel

欲求不満:私は、プロパティをチェックしているボックスをチェックし、チェックを外すと緑色の背景が消える(私のngModel [(ngModel)] = "student.checked"

答えて

0

をそれを変更し、あなたがstrudentを持って、DIVタグ置く学生にngClass

<div [ngClass]="{'active':student.checked}">...</div> 

を使用し、formControlName "確認")

0

はこれを試すと結合私は解決策

を見つけました
<div *ngFor="let student of students.controls; let i=index" 
[formGroupName]="i" [class.active]="student.controls.checked.value> 
    <!-- The repeated address template --> 
    <h4>Student #{{i + 1}} 
     <input type="checkbox" formControlName="checked"> 
    </h4> 

このコードは、助けを

おかげで動作します。

+0

残念ながら、私のコードで例を簡略化する方法で[class.active] = "student.checked"と同じ動作をします[class.active] = "student.checked"と私も試しました

...

+0

CommonModule – alehn96

+0

あなたはdivとチェックボックスの学生に苦しんでいる、それは問題です – alehn96