2016-11-30 34 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

相关问题