Javascript 在AngularJS中实现搜索:默认方式
我在angularjs应用程序中实现了默认搜索,代码如下:Javascript 在AngularJS中实现搜索:默认方式,javascript,angularjs,filter,angular-filters,Javascript,Angularjs,Filter,Angular Filters,我在angularjs应用程序中实现了默认搜索,代码如下: <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
<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>
{{record.value}}[{{record.count}]
我在这里面临的问题是,假设有人碰巧触发了某个关键字,而这些关键字在被重复的记录中并不存在。我想要一条消息,说“什么也没找到”或者别的什么
我如何实现这种逻辑?我在这里浏览了不同的文章和几个问题,在这方面找不到任何东西。如何查看搜索的词的长度是否为零,以便我能够识别该内容并显示消息?谢谢 如果您使用的是Angular 1.3+,则可以使用:
{{record.value}}[{{record.count}]
什么也没找到
如果必须使用较旧的角度,则可以将过滤器的结果指定给新数组,然后检查其长度:
<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>
{{record.value}}[{{record.count}]
什么也没找到
可能是重复的否,它不是重复的。。。OP不想检查记录数组长度,但要检查过滤后的数组长度…@MarcoS Right,这是链接问题中投票数第二高的答案。@OliverSalzburg:你说得对,我确实停下来接受了答案…:-(但这个问题要具体得多,它明确地询问了筛选结果的长度…您所指的问题没有,而且OP确实接受了不同的答案…:-)不是重复的,我在问这个问题之前检查了其他问题:)第一个解决方案不让记录出现,第二个解决方案(这确实让记录重复),但不符合要求。:(我的大错!!!如果ng
,则ng if
应该在ng repeat
之外,否则,如果“找不到”,它甚至不会由angular进行评估…:-((刚刚更正了代码,它工作了,现在…救了我一天!非常感谢!!):D
<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>