$ index的自定义过滤器,而不是从数据集中过滤

时间:2017-05-20 14:57:54

标签: angularjs ngtable

  <table ng-table="demo.tableParams" class="table table-condensed table-bordered table-striped">
        <tr ng-repeat="row in $data">
          <td data-title="'Name'" filter="{name: 'text'}">{{$index}}</td>
          <td data-title="'Age'" filter="{age: 'number'}">{{row.age}}</td> 
          <td data-title="'Money'">{{row.money}}</td>
          <td data-title="'Country'" filter="{ country: 'select'}" filter-data="demo.countries">{{row.country}}</td>
        </tr>
      </table>
    </div>

我有{{$index}}打印出索引号。我知道我可以使用filter = {age: 'number'}轻松过滤但是我不能对$index做同样的事情,因为它不是来自JS的数据集的一部分。

我希望能够通过输入框过滤$index,而不是在加载页面时自动过滤。

1 个答案:

答案 0 :(得分:1)

我认为你不能过滤$ index。但您可以在渲染表之前简单地扩展数据集。

<强>控制器

$scope.data = [{
    name: 'greg',
    age:29,
    money: 100.10
}, {
    name: 'bob',
    age:30,
    money: 250.00
}];

for(var i = 0; i < $scope.data.length; i++) {
    $scope.data[i].index = i;
}

$scope.table = new NgTableParams({ }, {
    dataset: $scope.data
});

查看:

<table ng-table="table" class="table table-condensed table-bordered table-striped">
    <tr ng-repeat="row in $data">
        <td data-title="'Index'" filter="{index: 'number'}">{{row.index}}</td>
        <td data-title="'Name'" filter="{name: 'text'}">{{row.name}}</td>
        <td data-title="'Age'" filter="{age: 'number'}">{{row.age}}</td>
        <td data-title="'Money'" filter="{money: 'number'}">{{row.money}}</td>
    </tr> </table>

enter image description here

enter image description here