我有一个奇怪的问题。
在我的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设置为true,有些设置为false。应根据role.IsActive属性检查复选框。但由于某些原因,在模型加载时(un)检查所有复选框。为什么会这样?
编辑:更进一步看,所有复选框的状态都取决于数组的最后一个元素。因此,如果选中了最后一个角色,则会选中所有复选框。
编辑2:添加了表单标签,因为它会导致问题。
答案 0 :(得分:1)
您需要将[value]="role.isActive"
放在复选框内以设置单个值。 Angular2官方指南中也对此进行了描述。属性也应从小写开始。您有role.IsActive
违反Angular2风格指南