角度过滤器不工作

Angular filter is not working

本文关键字:工作 过滤器      更新时间:2024-01-09

我正在尝试在ng-repeat 下使用角度过滤器

这是我的代码:

<ul id="testDiv2" class="dropdownH">
  <input type="text" placeholder="Keyword Filter" data-ng-model="search.category.category_name">
  <li data-ng-repeat="category in categories track by $index | filter: search.category.category_name" 
      data-ng-click="selectCategory($index)">
    <div class="colony pull-left">
      <span>{{category.category_name}}</span>
    </div>
    <div class="pull-right">
      <input type="radio" name="tag" />
      <label></label>
    </div>
  </li>
</ul>

上面的代码不起作用。但如果我删除track by $index,那么它就起作用了。

有什么建议吗?

您有跟踪表达式的问题,请在筛选后使用它

例如使用

data-ng-repeat="category in categories  | filter:search track by $index"

工作演示:

angular.module("test",[]).
controller("testController",function($scope){
$scope.categories = [{category_name:'abc'},{category_name:'cde'}];
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test" >
<ul id="testDiv2" ng-controller="testController" class="dropdownH">
<input type="text" placeholder="Keyword Filter" data-ng-model="search">
<li data-ng-repeat="category in categories  | filter:search track by $index" data-ng-click="selectCategory($index)">
 <div class="colony pull-left"><span>{{category.category_name}}</span></div>
                                                        <div class="pull-right"><input type="radio" name="tag" /><label></label></div>
</li>
</ul>

我找到了解决方案

我需要使用

<li data-ng-repeat="category in categories  | filter: search.category.category_name track by $index" data-ng-click="selectCategory($index)"