【发布时间】:2020-12-24 17:07:47
【问题描述】:
我正在使用响应式表单构建产品表单。
当我选中所有复选框并单击重置时,复选框不会更新**
当我删除 trackBy 时它工作正常,我怎样才能使用 ngFor trackBy 进行这项工作?
这里是示例:stackblitz Products Form
【问题讨论】:
标签: angular angular-reactive-forms
我正在使用响应式表单构建产品表单。
当我选中所有复选框并单击重置时,复选框不会更新**
当我删除 trackBy 时它工作正常,我怎样才能使用 ngFor trackBy 进行这项工作?
这里是示例:stackblitz Products Form
【问题讨论】:
标签: angular angular-reactive-forms
这是因为您在trackBy 函数中返回索引,trackBy 函数的第一个参数是项目的索引,第二个是您希望返回第二个参数的项目本身。
在您的示例中,它看起来像。
P.S 我用通用名称重命名了 trackBy 函数。
trackByFn(_, item){
return item;
}
我把你的stackblitz 分叉了,你也可以看看。
【讨论】:
这是因为你的trackByFn函数不正确。
trackBy函数将 index 和 当前项 作为参数 并且需要返回此项的唯一标识符。
那么,试试这个:
trackByFn(index, item){
return index;
}
您可以在Stackblitz 上查看已修复的错误版本。
【讨论】: