Javascript 计算嵌套ng重复的总数并更新angularjs中的多个控制器/模型
在我当前的项目中,我有两个嵌套的ng repeat,其中外部ng repeat提供了一个参数,内部ng repeat需要过滤掉数据+控制器上的一些额外自定义过滤。我想知道在整个数据集概览中,内部嵌套元素的总过滤计数是多少 考虑以下精简结构:Javascript 计算嵌套ng重复的总数并更新angularjs中的多个控制器/模型,javascript,angularjs,angularjs-scope,angularjs-ng-repeat,Javascript,Angularjs,Angularjs Scope,Angularjs Ng Repeat,在我当前的项目中,我有两个嵌套的ng repeat,其中外部ng repeat提供了一个参数,内部ng repeat需要过滤掉数据+控制器上的一些额外自定义过滤。我想知道在整个数据集概览中,内部嵌套元素的总过滤计数是多少 考虑以下精简结构: <div ng-repeat="division in divisions"> <!-- some division related stuff like logo, name, ... comes here (header of
<div ng-repeat="division in divisions">
<!-- some division related stuff like logo, name, ... comes here (header of the division) -->
<ol>
<li ng-repeat="member in members | orderBy:['position'] | filter:{divisionabbr:division.abbr} | filter:myCustomFilter"><!-- some member stuff here, like name --></li>
</ol>
<!-- some division footer stuff -->
</div>
我的问题是:如何获得已筛选成员的总数,从而显示在整个页面上
作为一个额外的例子,我希望我的控制器/范围上有这个计数,以便我可以与其他控制器进行通信
我尝试了以下解决方案:
- (请参阅我的评论,此计数在数据重新加载/部分数据集刷新时未正确更新)
- (由于范围问题,无法使用嵌套ng repeat)
有什么建议吗?您可以创建一个筛选成员对象,如:
$scope.filteredMembers = {};
然后像这样填充它:
<div ng-repeat="division in divisions">
<!-- some division related stuff like logo, name, ... comes here (header of the division) -->
<ol>
<li ng-repeat="member in filteredMembers[division] = (members | orderBy:['position'] | filter:{divisionabbr:division.abbr} | filter:myCustomFilter)"><!-- some member stuff here, like name --></li>
</ol>
<!-- some division footer stuff -->
</div>
在这之后,只需迭代filteredMembers
,并对其长度求和。因为它在范围内,所以您的控制器中也可以使用它
没有简单/自然的方法可以做到这一点。这是一个工作示例: 但是在你的代码中没有那么多的过滤器 我在那里使用了这种方法:
ng repeat=“filteredMembers=(members | filter:{division abbr:division.abbr})”我不明白减号是什么?有一个计算成员总数的工作示例:如果您所做的只是根据另一篇文章中的代码构建一个fiddle,那么您应该将其作为注释发布。如果您试图回答这个问题,可能需要解释代码中发生了什么。现在,它看起来不像一个答案,更像是简单地说“我把你的代码放在小提琴里了。”@BoltClock我写的这个例子并不是基于另一个。我们的回答之间的时间差大约为两分钟。在出版时,我还没有看到这样的回应。这很公平——无论哪种方式,我都觉得你的答案可以大大改进。一个简单的jsFiddle链接并不是很好的答案。有时候一个jsFiddle链接比100行文本更有用。不客气!)@Oleje,如果你窃取了别人的想法(并否决了他们),至少你有足够的尊严来更改变量名…@Shomz如果你仔细观察,你会发现我的方法与你的完全不同(除了同一个变量名是一次意外)