gpt4 book ai didi

angularjs嵌套ng-repeat子长度在ng-repeat之外

转载 作者:行者123 更新时间:2023-12-04 03:06:06 25 4
gpt4 key购买 nike

我有一个嵌套的 ng-repeat,我试图在父 ng-repeat 之外使用过滤后的嵌套 ng-repeat 的长度。但是,结果总是 0 ,如果它是单个 ng-repeat 我可以得到结果。我试过 $parent.filtered 但它得到了错误的结果。

示例如下:

 <div>
Filtered Count :{{filtered.length}}
<div ng-repeat="group in groups">
<div ng-repeat="letter in filtered = (group.letters | filter:filters.search ) | orderBy:orderByAttribute:sortReverse ">

</div>
</div>

</div>

谢谢,

最佳答案

filtered 是在 ng-repeat 指令的范围内创建的,这是一个隔离范围。

        <!-- PARENT SCOPE -->
Filtered Count :{{filtered.length}}
<div ng-repeat="group in groups">
<!-- NEW SCOPE HERE -->
<div ng-repeat="letter in filtered = (group.letters | filter:filters.search ) | orderBy:orderByAttribute:sortReverse ">
<!-- NEW SCOPE HERE -->
</div>
</div>

该属性无法从外部作用域访问,这就像尝试从外部作用域访问 ng-repeat$index 属性。

您可以将过滤后的数组绑定(bind)到外部作用域上的对象(例如,在模板的 Controller 中)

$scope.parent = {}

然后在指令内附加 filtered 到 parent,以便有一个钩子(Hook)从外部过滤。

<div ng-repeat="letter in  parent.filtered = (group.letters | filter:filters.search )  | orderBy:orderByAttribute:sortReverse ">

</div>

然后在父作用域

Filtered Count :{{parent.filtered.length}}


文档:angular ng-repeat

ngRepeat directive creates new scope

关于angularjs嵌套ng-repeat子长度在ng-repeat之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44201705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com