未创建ng-repeat中的变量集

时间:2014-10-13 14:03:27

标签: javascript html angularjs angularjs-ng-repeat

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

<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>

但是,出于某种原因,filteredData实际上从未实际设置,Showing of 10始终显示。我使用this回答来获取我的控制器的范围变量,但是filteredData没有出现在那里,尽管所有其他变量都出现了。

另外值得注意的是:重复的内容工作正常,只是filteredData没有设置。

1 个答案:

答案 0 :(得分:0)

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

您应该将filteredData设置为控制器中过滤的数据集。这样你只需循环重复声明。

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

也许值得注意的是,ng-repeat中的角度滤波器不会编辑阵列的长度。因此,如果您的代码实际上是DID,则filteredData.length就不会发生变化。