2016-11-30 37 views
0

我有一個奇怪的問題。在Angular2中加載模型時默認選中(或不是)所有複選框

在我的HTML頁面,我有以下代碼:

<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> 

我帶在具有角色數組,其中一些設置IsActive爲真,有的假的典範。該複選框應該根據role.IsActive屬性進行檢查。但出於某種原因,所有複選框在模型加載時都會被(取消)檢查。這是爲什麼發生?

編輯:更進一步看,所有複選框的狀態都依賴於數組的最後一個元素。所以如果最後一個角色被選中,所有複選框都會被選中。

編輯2:添加了表單標籤,因爲它導致問題。

回答

1

您需要將[value]="role.isActive"放在您的複選框中才能設置單個值。這在官方的Angular2指南中也有描述。此外,屬性應該以小寫字母開頭。您有role.IsActive這是違反Angular2風格指南

+0

這沒有奏效。其他每個複選框仍然被選中/取消選中。 – javisrk

+0

[NgValue} =「role.isActive」 – Bhetzie

+0

你應該在我的項目中提供一個撬棍,它完美地工作 – lastWhisper