如何跟踪ngRepeat(AngularJS)中的项目?

时间:2015-05-07 13:06:17

标签: javascript angularjs tracking

Hej伙计,

我有一个简单的问题,但我找不到解决方案。 我有一个搜索输入字段,您可以在所有列的表中搜索。但我想跟踪ngRepeat中的项目,但它还没有用。

这是搜索项目的输入字段:

<div>
  <input type="search" ng-model="searchText" />
</div>

表格与ngRepeat:

...
<tr ng-repeat="item in filtered = (persons | filter:searchText track by item.name)">
   <td>{{ item.id }}</td>
   <td>{{ item.name }}</td>
</tr>
...

任何人都可以帮助我吗? :)

1 个答案:

答案 0 :(得分:2)

据我了解,您不需要跟踪,只需filter

<tr ng-repeat="item in persons | filter:{ name: searchText} ">

angular.module('app', [])
  .controller('ctrl', function($scope) {
    $scope.persons = [{
      name: 'a',
      id: 1
    }, {
      name: 'aa',
      id: 2
    }, {
      name: 'aaaa',
      id: 3
    }, {
      name: 'aaaaa',
      id: 4
    }, {
      name: 'aaaaaa',
      id: 5
    }, {
      name: 'aaaaaaa',
      id: 6
    }];
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="ctrl">
  <div>
    <input type="search" ng-model="searchText" />
  </div>
  <table>
    <tr ng-repeat="item in persons | filter:{name:searchText}">
      <td>{{ item.id }}</td>
      <td>{{ item.name }}</td>
    </tr>
  </table>
</div>