数组为空Angular.js时不显示值

Display no values when array empty Angular.js

本文关键字:显示 js Angular 数组      更新时间:2023-09-26

我正在学习angular.js,并试图确定对我来说最简单的方法是在数组为空时显示消息"未找到值"。

我试过这个,但不起作用

 <ul>
        <li ng-show="!items.length">No values</li>
        <li ng-repeat="i in items | searchFor:searchString">                
            <p>{{i.title}}</p>
        </li>
    </ul>

还有我的控制器

app.filter('searchFor', function () {
return function (arr, searchString) {
    if (!searchString) {
        return arr;
    }
    var result = [];
    searchString = searchString.toLowerCase();
    angular.forEach(arr, function (item) {
        if (item.title.toLowerCase().indexOf(searchString) !== -1) {
            result.push(item);
        }
    });
    console.log(result.length);
    return result;
}
});

当没有返回值时,如何显示消息"未找到值"?

如果或ng显示,则使用ng中的过滤数组

<ul>
    <li ng-repeat="i in filteredItems = (items | searchFor:searchString)">                
        <p>{{i.title}}</p>
    </li>
    <li ng-show="!filteredItems.length">No values</li>
</ul>

这是有效的:

<ul>
     <li ng-show="!(items | searchFor:searchString).length">
           No values
     </li>
     <li ng-repeat="i in items | searchFor:searchString">                
            <p>{{i.title}}</p>
     </li>
</ul>

尝试JSFiddle