2016-11-30 9 views
0

私は奇妙な問題があります。Angular2でモデルを読み込むときに、デフォルトですべてのチェックボックスが選択されます(または選択されません)

<form> 
<tr *ngFor="let role of userRoles" style="width:100%;" > 
    <td style="width:37px;"> 
     <input class="uicheckbox" type="checkbox" [(ngModel)]="role.IsActive" name="isActive{{role.roleId}}" (click)="onCheck(role)" /> 
    </td> 
    <td>{{role.Name}}</td> 
</tr> 
</form> 

私はいくつかのfalseに、trueに設定されているのisActiveそのうちのいくつかの役割の配列を、持っているモデルで持っている:私のhtmlページで

、私は次のコードを持っています。チェックボックスは、role.IsActiveプロパティに基づいてチェックする必要があります。しかし何らかの理由で、モデルが読み込まれると、すべてのチェックボックスがチェックされます。なぜこうなった?

編集:これをさらに見ると、すべてのチェックボックスの状態は配列の最後の要素に依存します。したがって、最後のロールがチェックされていれば、すべてのチェックボックスがチェックされます。

EDIT 2:問題の原因となるフォームタグを追加しました。

答えて

1

個々の値を設定するには、チェックボックスの内側に[value]="role.isActive"を入れる必要があります。これはAngular2の公式ガイドにも記載されています。プロパティも小文字で始める必要があります。あなたはrole.IsActiveですが、Angular2スタイルのガイドにはありません

+0

これはうまくいきませんでした。他のすべてのチェックボックスはまだオン/オフです。 – javisrk

+0

[NgValue} = "role.isActive" – Bhetzie

+0

私のプロジェクトでは、完全に機能しています – lastWhisper

関連する問題