You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 4中如何获取数组内指定元素的count值?

解决Angular视图中匹配多个name值获取count的问题

首先你当前代码没输出的核心问题是引号嵌套冲突:HTML属性本身用双引号包裹ng-repeat的值,里面的字符串"science"又用双引号,会导致浏览器解析错误。哪怕只是匹配单个值,也得把内部双引号改成单引号,比如filter: {name: 'science'}。不过要实现匹配science或article的需求,有两种更合适的方案:

方案一:自定义过滤函数(灵活通用)

在控制器里定义一个过滤函数,用来判断当前item的name是否符合要求:

// 控制器代码
$scope.data = [{"name":"science", count: 3}, {"name":"action", count: 1}, {"name":"thriller", count: 1}, {"name":"article", count: 1}];

$scope.filterTargetNames = function(item) {
  // 返回匹配science或article的项
  return item.name === 'science' || item.name === 'article';
};

然后在HTML中使用这个函数作为过滤器:

<span ng-repeat="item in data | filter: filterTargetNames"> {{ item.count }} </span>

方案二:使用数组匹配(AngularJS 1.3+支持)

如果你的AngularJS版本是1.3及以上,可以直接用数组指定多个匹配值,写法更简洁:

<span ng-repeat="item in data | filter: {name: ['science', 'article']}"> {{ item.count }} </span>

这种方式会自动匹配name等于数组中任意一个值的项。

另外补充:如果只是想获取单个匹配项的count(比如只想拿science的count),不需要用ng-repeat,可以直接这样写:

{{ (data | filter: {name: 'science'})[0].count }}

内容的提问来源于stack exchange,提问作者pinks

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:20:28