【问题标题】:change ngModel value with checkbox使用复选框更改 ngModel 值
【发布时间】:2018-04-06 22:24:11
【问题描述】:

美好的一天..我有这个代码,我需要发送角色..但是当我选择复选框时,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>

【问题讨论】:

  • 什么是roles?角色是对象还是字符串?
  • 是一个对象..{ "id": 3, "name": "ROLE_USER" } 例如

标签: angular angular2-mdl


【解决方案1】:

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

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

【讨论】:

  • 非常感谢你救了我只需要那个'='
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    我建议改变你的对象。

    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>
    

    【讨论】:

    • 我有一些问题,我认为这是因为'roles'是model.ts中的一个对象,称为users import {Role} from '../roles/role.model';导出类用户{ id:字符串;用户名:字符串;密码:字符串;名称:字符串;姓氏F:字符串;姓M:字符串;电话:字符串; officePhone:字符串;角色:角色[]; }
    • 发布模型时,将启用的角色放在用户身上。
    猜你喜欢
    • 2019-04-13
    • 2018-09-15
    • 2018-09-14
    • 2022-11-01
    • 2017-05-01
    • 1970-01-01
    • 2020-04-19
    • 2019-03-05
    • 2015-11-08
    相关资源
    最近更新 更多