为了账号安全,请及时绑定邮箱和手机立即绑定

angular 监听input单选,多选值的变化

angular 监听input单选,多选值的变化

蝴蝶刀刀 2019-03-15 19:15:58
<ng-template ngFor [ngForOf]="checklist" let-item let-i="index">            <div class="ui checkbox">              <input type="checkbox" name="status" [checked]="item.isChecked">              <label for="wait-loan-id" class="Settlement">{{item.name}}<span class="black">({{item.cnt}})</span></label>            </div>          </ng-template>页面效果是这样:ts的代码是这样的:getCheckList(): void {    let statusList: any = [      { name: '机审中', value: 0, cnt: 0 },      { name: '机审失败', value: 2, cnt: 0 }    ];    statusList.map((item) => {      return item.isChecked = true;    });    this.checklist = statusList;  }chooseStatuses(event, index): void {    let { value, checked } = event.target;    this.toggleItemStatuses(checked, value, index);  }下标状态我在发请求时需要判断状态的勾选是全选还是单选,全选就要org/apply?status=0&status=2向后台请求,单选的话,就要看勾的是哪一个就哪一个下的value值,这样就要监听input值的变化,但是我不会,还有就是判断单选状态,和选中或取消当前选中状态的逻辑不太清楚,求大佬帮忙!
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

竟然没看懂你写的代码...还要多多理解双向绑定啊,不能带着jquery的思路想问题。我没用template,直接写了


    public list =  [{n:'t1', v:'t1', c: false}, {n:'t2', v:'t2', c: false}];

    onCheckChange() {

        console.log(this.list);

    }

    //HTML

    <ul>

        <li *ngFor="let item of list">

            <input type="checkbox" [(ngModel)]="item.c" (change)="onCheckChange()" />{{item.n}}

        </li>

    </ul>

这里的change事件只是打印调试,没有什么用处(除非你对checkbox多选的结果有额外的逻辑处理)。你运行一下就明白了。


查看完整回答
反对 回复 2019-04-14
  • 2 回答
  • 0 关注
  • 832 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信