2017-05-20 3 views
0
<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> 

J'ai {{$index}} pour imprimer le numéro d'index. Je comprends que je peux filtrer facilement en utilisant filter = {age: 'number'} mais je ne peux pas faire la même chose pour $index car il ne fait pas partie de l'ensemble de données du JS.

Je veux être en mesure de filtrer $index via une boîte de saisie au lieu de filtrer automatiquement lors du chargement de la page.

Répondre

1

Je ne pense pas que vous pouvez filtrer sur $ index. Mais vous pouvez simplement étendre votre jeu de données avant de rendre la table.

Contrôleur

$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 
}); 

Vue:

<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

+0

J'ai passé 2 jours à ce sujet. votre solution est propre et nette. JE VOUS REMERCIE!!!!!!!!!!!!!!!!!!!!!!!!!!! – Tosm