Javascript 未创建ng repeat中的变量集

Javascript 未创建ng repeat中的变量集,javascript,html,angularjs,angularjs-ng-repeat,Javascript,Html,Angularjs,Angularjs Ng Repeat,关于如何确定过滤掉的元素数量的问题,我创建了以下角度代码: <input type="text" ng-model="query" placeholder="Enter query..."> <div ng-if="filteredData.length!=data.length"> Showing {{filteredData.length}} of {{data.length}}</div> <div ng-repeat="datum in filt

关于如何确定过滤掉的元素数量的问题,我创建了以下角度代码:

<input type="text" ng-model="query" placeholder="Enter query...">
<div ng-if="filteredData.length!=data.length"> Showing {{filteredData.length}} of {{data.length}}</div>
<div ng-repeat="datum in filteredData = (data | orderBy: 'name' : reverse | filter:query)"> 
    ....
</div>

显示{data.length}的{filteredData.length}}
....
但是,由于某些原因,
filteredData
从未实际设置,并且总是出现
Showing of 10
。我使用answer获取控制器的作用域变量,但是尽管显示了所有其他变量,
Filteredata
没有显示在那里


同样值得注意的是:重复工作的内容很好,只是没有设置
filteredData

我相信这是因为您试图在ng repeat中设置filteredData

您可能应该将Filteredata设置为控制器中经过筛选的数据集。那样的话,你只是在重复陈述

<div ng-repeat="datum in filteredData | orderBy: 'name' : reverse | filter:query"> 
    ....
</div>

....

可能还值得注意的是,ng repeat中的角度过滤器不会编辑数组的长度。因此,如果您的代码确实起作用,则Filteredata.length不会更改。

角度过滤器不是要更改数组长度,而是要创建一个子集并将其分配给一个新数组,
Filteredata
,该数组将具有较小的长度。这过去是有效的,但现在由于某种原因它停止了工作。在控制器外面从里到外做这件事不要紧。请看这里,我使用了你的代码,一切看起来都很好。你在控制台上有什么错误吗?@sss我发现了问题。这是因为我的
ng repeat
被包装在
ng if
中,而代码的其余部分没有。但是,
ng if
总是计算为true,所以我不知道为什么
ng if
会引起问题。