使用复选框更改ngModel值

时间:2017-10-25 17:53:19

标签: angular angular2-mdl

美好的一天..我有这个代码,我需要发送角色..但是当我选择复选框时,ngModel变为True或False,它是发送给DB的...我该如何解决?

<mdl-checkbox class="mdl-textfield--full-width" *ngFor="let role of roles; let i = index"
[(ngModel)]="user.roles[i] " name="ckb{{i}}">
{{role.name}}
</mdl-checkbox>

3 个答案:

答案 0 :(得分:0)

很难说只有模板。但是,如果您要发送用户,则可能是您要覆盖数据,因为您在复选框上使用了[(ngModel)]="user.roles[i]",而是通过单击复选框来更改该值。您可以通过执行role.isChecked在角色阵列上创建项目。然后您可以存储已检查的状态。

答案 1 :(得分:0)

我建议改变你的对象。

public class Role {
    id: number;
    name: string;
    enabled: boolean;
}

<mdl-checkbox class="mdl-textfield--full-width" *ngFor="let role of roles; let i = index" [(ngModel)]="user.roles[i].Enabled" name="ckb{{i}}">
    {{role.name}}
</mdl-checkbox>

答案 2 :(得分:0)

您可以在change事件中设置用户角色吗?像(change)="userRoles[i] = role"仅使用Angular的样本plunkr:

https://plnkr.co/edit/erIQNgk6u1JxOc6zCoHW?p=preview