Все флажки установлены (или нет) по умолчанию при загрузке модели в 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 значение true, а некоторые — false. Флажок должен быть установлен на основе свойства role.IsActive. Но по какой-то причине все флажки (сняты) отмечены при загрузке модели. Почему это происходит?

РЕДАКТИРОВАТЬ: Если посмотреть на это еще дальше, состояние всех флажков зависит от последнего элемента массива. Таким образом, если последняя роль отмечена, все флажки отмечены.

РЕДАКТИРОВАТЬ 2: добавлен тег формы, поскольку он вызывает проблему.


person javisrk    schedule 30.11.2016    source источник


Ответы (1)


Вам нужно поставить [value]="role.isActive" внутри флажка, чтобы установить индивидуальное значение. Это также описано в официальном руководстве по Angular2. Также свойства должны начинаться с нижнего регистра. У вас есть role.IsActive, что противоречит руководству по стилю Angular2.

person lastWhisper    schedule 30.11.2016
comment
Это не сработало. Все остальные флажки по-прежнему отмечены/сняты. - person javisrk; 30.11.2016
comment
[NgValue}=role.isActive - person Bhetzie; 30.11.2016
comment
Вы должны предоставить плункер, в моем проекте он работает отлично - person lastWhisper; 30.11.2016