如何从angularJS中过滤的数组中获取实际值

时间:2013-06-19 19:15:52

标签: angularjs

我的问题是我需要知道我的数组过滤后是否为空。我正在将一些过滤器应用于数组并显示结果,当过滤器没有结果时,我需要显示一条消息错误。如何捕获数组为空的时刻?

Html:

<div ng-repeat="array in arrays | filterArray1 | filterArray2 | filterArray3 | filter: 'name'>

提前致谢。

2 个答案:

答案 0 :(得分:5)

您可以将过滤后的数组分配给变量,然后显示消息:

<div ng-repeat="array in filteredArrays = (arrays | filterArray1 | filterArray2 | filterArray3 | filter: 'name')>
   ...
</div>
<div ng-show="filteredArrays.length == 0">Empty message</div>

答案 1 :(得分:0)

您可以使用ng-init将其存储在临时变量中:

<div ng-app="app">
    <div ng-controller="ParentCtrl">
        <div data-ng-init="filteredArray = (arrays | myFilter)">
            <div data-ng-repeat="data in filteredArray">
                {{ data }}
            </div>
            <div data-ng-show="!filteredArray.length">
                no results
                <!-- no results -->
            </div>
        </div>
    </div>
</div>

这是一个小提琴,它有一个操纵数据的过滤器:http://jsfiddle.net/XwFQJ/