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
会引起问题。