如何检查角度js中的过滤器是否在搜索中返回了任何数据

时间:2015-02-28 12:42:40

标签: angularjs filter

我是角度j的新手。我想知道如何根据角度js中的过滤器搜索来调用函数。当基于过滤器的搜索没有返回任何值时,我需要调用控制器中的函数。

<li ng-repeat="test in test_list | filter: test_id">
                    {{ test}} 
                 </li>

当{{test}}列表为null时,我想调用控制器中的函数。

这对你们来说可能很容易。谢谢。

1 个答案:

答案 0 :(得分:4)

<li ng-repeat="test in results = (test_list | filter: test_id)">
                    {{ test}} 
                 </li>

然后您就可以访问$ scope.results.length

如果您需要在没有结果时显示消息,请添加

<li ng-show="results.length == 0">No results</li>

如果你想检查一下控制器的长度,你可以用几种方法做到这一点......这只有两个......

<input type="text" id="test_id" ng-model="test_id" ng-change="controllerOnChangeFunction()"/>

在您的控制器中

$scope.controllerOnChangeFunction = function() {
    if ($scope.results.length == 0) {
         //do stuff here
    }
}

或者在您的控制器中(请记住,此手表的评估频率也会超出您的需求。

$scope.watch(
    function(){
        return $scope.results.length
    }, 
    function(newVal){
        if (newVal == 0) { 
             // do you stuff here
        }
    }
);