
[英]How can I create a JavaScript filter function for multiple filters at once
[英]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.