【问题标题】:Angular 9 Reactive Forms: checkbox not getting updated when using trackByAngular 9 Reactive Forms:使用 trackBy 时复选框未更新
【发布时间】:2020-12-24 17:07:47
【问题描述】:

我正在使用响应式表单构建产品表单。

当我选中所有复选框并单击重置时,复选框不会更新**

当我删除 trackBy 时它工作正常,我怎样才能使用 ngFor trackBy 进行这项工作?

这里是示例:stackblitz Products Form

【问题讨论】:

    标签: angular angular-reactive-forms


    【解决方案1】:

    这是因为您在trackBy 函数中返回索引,trackBy 函数的第一个参数是项目的索引,第二个是您希望返回第二个参数的项目本身。

    在您的示例中,它看起来像。

    P.S 我用通用名称重命名了 trackBy 函数。

     trackByFn(_, item){
      return item;
     }
    

    我把你的stackblitz 分叉了,你也可以看看。

    【讨论】:

      【解决方案2】:

      这是因为你的trackByFn函数不正确。

      trackBy 函数将 index当前项 作为参数 并且需要返回此项的唯一标识符

      那么,试试这个:

      trackByFn(index, item){
        return index;
      }
      

      您可以在Stackblitz 上查看已修复的错误版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-04-06
        • 2018-09-06
        • 1970-01-01
        • 2017-05-06
        • 2017-11-20
        • 1970-01-01
        • 2017-04-01
        • 2018-01-04
        相关资源
        最近更新 更多