javascript - 计算嵌套的 ng-repeats 总数并更新 angularjs 中的多个 Controller /模型

标签 javascript angularjs angularjs-scope angularjs-ng-repeat

在我当前的项目中,我有两个嵌套的 ng-repeats,其中外部 ng-repeat 提供了一个参数,内部 ng-repeat 需要过滤掉数据 + Controller 上的一些额外的自定义过滤。我想知道整个数据集概览的内部嵌套元素的总过滤计数是多少。

考虑以下精简结构:

<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>

我的问题是:如何获取过滤后的成员总数并显示在整个页面上。

另外,我希望在我的 Controller /范围上有这个计数,以便我可以将它传达给其他 Controller 。

我尝试了以下解决方案:

有什么建议吗?

最佳答案

您可以创建过滤的成员对象,例如:

$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 并对它们的长度求和。因为它在范围内,所以您也可以在 Controller 中使用它。

没有简单/原生的方法来做到这一点。

关于javascript - 计算嵌套的 ng-repeats 总数并更新 angularjs 中的多个 Controller /模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22199907/

相关文章:

javascript - 如何在Nodejs中模拟外部依赖方法回调参数?

javascript - Angular 循环中的分组和汇总

javascript - 在 Angular Directive(指令)中提交表单

javascript - 如何在angular js中滑动图像?

javascript - 如何访问具有隔离范围的指令属性?

javascript - django使用ajax从数据库检索数据并更新部分

javascript - 如何在 RxJS 中创建切换流?

javascript - angular handle @sign in view path 如何处理?

javascript - AngularJS 1.3 路由不起作用; Controller 从未调用过

javascript - 在 Angular 上使用 vm 打印数据