Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS中实现搜索:默认方式_Javascript_Angularjs_Filter_Angular Filters - Fatal编程技术网

Javascript 在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

我在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 type="checkbox">{{record.value}}&nbsp;[{{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}}&nbsp;[{{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}}&nbsp;[{{record.count}}]
    </label>
  </div>
  <div ng-if="filteredRecords.length === 0">
    Nothing found
  </div>
</div>