ng-zorro复选框

本文介绍了如何使用ng-zorro框架,在前端实现复选框功能,并限制用户最多只能选择两个选项。通过HTML和TypeScript代码示例,展示了具体的实现步骤和逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

html:

<label *ngFor="let field of fields">
  <label nz-checkbox [(nzChecked)]="field.checked" [(ngModel)]="field.checked" (ngModelChange)="refreshStatus($event)">{{field.value}}</label>
</label>
<br><br><br><br>
你的选择是:
<label *ngFor="let item of list">
 {{item}}&nbsp;&nbsp;&nbsp;&nbsp;
</label>

ts:

fields= [
  { key: 'sumBattery', value: '电池总数',checked:false },
  { key: 'averageSOC', value: '电池最高soc平均',checked:false  },
  { key: 'averageCapacity', value: '电池总容量平均',checked:false },
  { key: 'differernceCapacity', value: '电池总容极差',checked:false },
  { key: 'averageHealth', value: '电池健康平均',checked:false  },
  { key: 'differernceHealth', value: '电池健康极差',checked:false },
  { key: 'highPressure', value: '电池超高压报警总数',checked:false  },
  { key: 'highTemperature', value: '电池超高温报警总数' ,checked:false },
  { key: 'differerncePressure', value: '电池压差报警总数',checked:false  },
  { key: 'differernceTemperature', value: '电池温差报警总数',checked:false  },
];
list=[] // 用来接收复选框选择的值
refreshStatus(): void {
  this.list=[]   // list 一定要定义为局部变量
  this.fields.forEach(data => {
    if (data.checked === true) {
      this.list.push(data.value)
    }
  });
  console.log("---------", this.list)
}

效果图:

最多选2个

 

html 

<label *ngFor="let field of fields">
  <label nz-checkbox [nzDisabled]="field.disable"  [(nzChecked)]="field.checked" [(ngModel)]="field.checked" (ngModelChange)="refreshStatus($event)">{{field.value}}</label>
</label>

ts 

fields = [
    {key: 'sumBattery', value: '电池总数', checked: false,disable:false},
    {key: 'averageSOC', value: '电池最高soc平均', checked: false,disable:false},
    {key: 'averageCapacity', value: '电池总容量平均', checked: false,disable:false},
    {key: 'differernceCapacity', value: '电池总容极差', checked: false,disable:false},
    {key: 'averageHealth', value: '电池健康平均', checked: false,disable:false},
    {key: 'differernceHealth', value: '电池健康极差', checked: false,disable:false},
    {key: 'highPressure', value: '电池超高压报警总数', checked: false,disable:false},
    {key: 'highTemperature', value: '电池超高温报警总数', checked: false,disable:false},
    {key: 'differerncePressure', value: '电池压差报警总数', checked: false,disable:false},
    {key: 'differernceTemperature', value: '电池温差报警总数', checked: false,disable:false},
];
refreshStatus(): void {
    this.list = []
    this.fields.forEach(data => {
        if (data.checked === true) {
            this.list.push(data.value)
        }
    });
    if(this.list.length>=2){
        this.fields.forEach(da=>{
            if(da.checked === true){
                da.disable=false
            }
            else {
                da.disable=true
            }
        })
    }else {
        this.fields.forEach(da=>{
            da.disable=false
        })
    }
    console.log("---------------", this.fields)
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值