我在angularjs app中实现了默认搜索,代码如下:
<div>
<input type="text" ng-model="searchKeyword" placeholder="Search records...">
<div class="checkbox" ng-repeat="record in records | filter: searchKeyword">
<label class="ms-pl-xs">
<input type="checkbox">{{record.value}} [{{record.count}}]
</label>
</div>
我在这里遇到的问题是,假设某人碰巧发现了一些关键词,而这些关键词在重复记录中并不存在。我想要一条消息,说“找不到任何东西”或者说什么。
如何实现该逻辑?我在这里经历了不同的文章和几个问题,在这方面找不到任何东西。如何查看所搜索的术语的长度是否为零,以便我可以 - 如果那个东西并显示消息?谢谢!
答案 0 :(得分:2)
如果您使用的是Angular 1.3+,则可以使用alias:
<div>
<input type="text" ng-model="searchKeyword" placeholder="Search records..." />
<div class="checkbox" ng-repeat="record in records | filter: searchKeyword as found">
<label class="ms-pl-xs">
<input type="checkbox">{{record.value}} [{{record.count}}]
</label>
</div>
<div ng-if="found === 0">
Nothing found
</div>
</div>
如果您必须使用较旧的Angular,可以将过滤器的结果分配给新数组,然后检查它的长度:
<div>
<input type="text" ng-model="searchKeyword" placeholder="Search records..." />
<div class="checkbox" ng-repeat="record in filteredRecords = (records | filter: searchKeyword)">
<label class="ms-pl-xs">
<input type="checkbox">{{record.value}} [{{record.count}}]
</label>
</div>
<div ng-if="filteredRecords.length === 0">
Nothing found
</div>
</div>