繁体   English   中英

应用过滤器后,如何更新个人计数?

[英]How can I update the individual count as well once filters are applied?

应用过滤器后,我想更新个人计数(适用,不适用)。 它目前只更新总数。

请协助。

直播: https://angular-ivy-dubf37.stackblitz.io/

getCounts() {
    this.impactCount = { applicable: 0, notApplicable: 0, fyi: 0 };
    
    this.allUser.forEach(row => {
      // impact counts
      if (row.impact === "Applicable") {
        this.impactCount.applicable++;
      } else if (row.impact === "Not Applicable") {
        this.impactCount.notApplicable++;
      } else if (row.impact === "FYI") {
        this.impactCount.fyi++;
      }
    });
  }

你的问题是当你改变过滤器 pipe 知道新数据但你得到计数 function 不知道数据已经改变

作为一个简单的解决方案(可能是一个肮脏的解决方案。我也愿意接受建议:D)首先,我稍微改变了你的 getCount 方法。

getCounts (user ?: any) {
     this.impactCount = {applicable: 0, notApplicable: 0, fyi: 0};
     let data = user? user: this.allUser;
     data.forEach (row => {
       if (row.impact === "Applicable") (
         this.impactCount.applicable ++;
       } else if (row.impact === "Not Applicable") {
         this.impactCount.notApplicable ++;
       } else if (row.impact === "FYI") {
         this.impactCount.fyi ++;
       }
     });
   }

然后使用getCount function 发送 pipe 返回值,如下所示

<ng-container *ngIf="allUser  | tableFilter: form.value as filteredUsers">
        <div class="text-right toal-records">
            Total: {{filteredUsers.length}}
            {{getCounts(filteredUsers)}}
        </div>

        <div style="padding-left: 20px">
            Applicable: {{impactCount.applicable}} Not Applicable:
            {{impactCount.notApplicable}} FYI: {{impactCount.fyi}}
        </div>

我也更新了你的演示项目

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM