我在视图中有这个表达式:
<div ng-repeat="friend in (filtered = (friendsData | matchnames:search.pattern)) | myLimitTo : 9 : pageIndex * 9"" >
我做了过滤,所以我可以显示这样的东西
{{filtered.length}}
在视图中效果很好,但是如何在控制器中访问此参数,以便我用它做什么呢?
答案 0 :(得分:4)
您无法访问$scope.filtered
,因为ng-repeat
会创建新范围并为其设置filtered
。
从技术上讲,您可以在控制器中创建$scope.viewData = {}
并在模板中使用以下代码:
<div ng-repeat="friend in (viewData.filtered = (friendsData | matchnames:search.pattern)) | myLimitTo : 9 : pageIndex * 9"" >
还有一些其他可能的方法可以执行类似的操作:例如,如果您使用controllerAs
,则可以将过滤后的数组设置为它。
但总的来说,所有这些技巧都不是很好的练习,因为你想隐式地将变量传递给控制器,你的角度表达看起来很复杂。