Angular如何为slide toggle对应的FormArray设置回显布尔值
实现方案
你可以通过遍历可选通道数组匹配接口返回的已选通道,生成布尔值数组后赋值给FormArray即可,具体实现如下:
步骤1:在接口获取到编辑数据后执行赋值逻辑
// 示例:接口返回的已选通道列表,替换为你实际的接口返回字段 const editSelectedChannels: string[] = 接口返回的已选通道数组; const enabledChannelsArr = this.form.get('enabledChannels') as FormArray; // 遍历所有可选通道,判断是否在已选列表中,依次给FormControl赋值 this.canaisHabilitados.forEach((channel, index) => { const isSelected = editSelectedChannels.includes(channel); enabledChannelsArr.at(index).setValue(isSelected); });
注意事项
- 你现有代码中表单初始化时的字段名存在笔误:
nabledChannels少了首字母e,需要修正为enabledChannels,否则会出现表单控件匹配失败的问题 - 模板中的
[checked]="channel.value"可以删除,你已经绑定了formControlName,响应式表单会自动控制滑动开关的选中状态,重复绑定可能引发状态冲突
内容的提问来源于stack exchange,提问作者Desenv Junior
相关产品推荐
相关产品推荐

