如何从angularjs中的控制器访问过滤后的数组?

如何从angularjs中的控制器访问过滤后的数组?,angularjs,filter,controller,Angularjs,Filter,Controller,我的观点是这样的: <div ng-repeat="friend in (filtered = (friendsData | matchnames:search.pattern)) | myLimitTo : 9 : pageIndex * 9"" > 在视图中,它工作得很好,但是我如何才能访问控制器中的此参数以便处理它呢?您不能访问$scope.filtered,因为ng repeat创建了一个新的作用域并将filtered设置为它 从技术上讲,您可以在控制器中创建$scope.

我的观点是这样的:

<div ng-repeat="friend in (filtered = (friendsData | matchnames:search.pattern)) | myLimitTo : 9 : pageIndex * 9"" >

在视图中,它工作得很好,但是我如何才能访问控制器中的此参数以便处理它呢?

您不能访问
$scope.filtered
,因为
ng repeat
创建了一个新的作用域并将
filtered
设置为它

从技术上讲,您可以在控制器中创建
$scope.viewData={}
,并在模板中使用以下代码:

<div ng-repeat="friend in (viewData.filtered = (friendsData | matchnames:search.pattern)) | myLimitTo : 9 : pageIndex * 9"" >

您无法访问
$scope.filtered
,因为
ng repeat
创建了一个新的作用域并将其设置为
filtered

从技术上讲,您可以在控制器中创建
$scope.viewData={}
,并在模板中使用以下代码:

<div ng-repeat="friend in (viewData.filtered = (friendsData | matchnames:search.pattern)) | myLimitTo : 9 : pageIndex * 9"" >

这个给我看undefined@totothegreat试试这个plnkr,让我知道它是否适合你。如果你没有在你的控制器中预先定义过滤变量,它是在ng repeat自己的作用域中创建的。如果您像
$scope.filtered=[]那样声明筛选
在你的控制器中,我认为它应该能工作。@Rebornix他想访问已过滤的,而不是他示例中的“朋友”或你plnkr中的“人”。plunker做到了,我应该使用“this”并对其应用更改,thx伙计!这个给我看undefined@totothegreat试试这个plnkr,让我知道它是否适合你。如果你没有在你的控制器中预先定义过滤变量,它是在ng repeat自己的作用域中创建的。如果您像
$scope.filtered=[]那样声明筛选
在你的控制器中,我认为它应该能工作。@Rebornix他想访问已过滤的,而不是他示例中的“朋友”或你plnkr中的“人”。plunker做到了,我应该使用“this”并对其应用更改,thx伙计!