【问题标题】:Angular template: Is there something like {{someObject.someList.where(somePredicate).length}}?Angular 模板:有类似 {{someObject.someList.where(somePredicate).length}} 的东西吗?
【发布时间】:2026-02-22 05:25:02
【问题描述】:

在进行角度模板时,有没有办法在显示列表长度之前过滤列表?例如,我可以做类似<h3>{{category.products.where(p => p.IsActive).length}}</h3> 的事情吗?

如果没有,最好的选择是什么?

【问题讨论】:

  • 在这种情况下,自定义过滤器是您的朋友。
  • 它可以过滤对象的子列表吗?如果是这样,它们是如何工作的?

标签: javascript html angularjs frameworks client-side


【解决方案1】:

如果我正确理解您的要求,您需要按照我创建的plunkr 中所做的操作。

如果你的要求不同,你能用 plunkr 演示一下吗?

{{ (user.products | active).length }} products

阿比

【讨论】:

  • 这不是我需要的。我不需要 ng 重复。在您的示例中,我需要的是用户中活跃产品的数量。我不需要循环,我需要获取用户中活跃产品的数量。
  • 一旦你得到一个过滤集,你可以用它做任何你想做的事情。 Plunkr 和答案现已更新以显示过滤项目的数量。
  • 我收到一个错误:“未知提供者:IsActiveFilterProvider
  • 如果不查看您的代码,我无法说出问题所在。你能为此提交一个plunkr吗?如您所见,过滤器在我的 plunkr 中运行良好。
  • 我无法粘贴我的实际代码,因为它是我工作场所的代码。