在Angular2中加载模型时,默认情况下会选中(或不选中)所有复选框

时间:2016-11-30 17:35:22

标签: angular checkbox angular2-ngmodel

我有一个奇怪的问题。

在我的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:添加了表单标签,因为它会导致问题。

1 个答案:

答案 0 :(得分:1)

您需要将[value]="role.isActive"放在复选框内以设置单个值。 Angular2官方指南中也对此进行了描述。属性也应从小写开始。您有role.IsActive违反Angular2风格指南