2017-05-11 2 views
1

j'ai ce problème:Bad reload après l'entrée de changement avec AngularJS ngTable

Je veux utiliser ngTable avec TableParams pour la charge et changer une table.

Voici un exemple:

Après l'initialisation de la page, si, pour la première fois, est inséré un numéro dans la zone de texte, anguleux me donner un certain nombre de lignes dans la table, mais pour la deuxième (troisième ...) si j'insère un autre nombre, la table ne se rafraîchit pas.

$scope.tableParams = new NgTableParams({ 
      page: 1, // show first page 
      count: 10 // count per page 
     }, { 
      total: data.length, // length of data 
     getData: function($defer, params) { 
     params.total(data.length); 
       $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count())); 
      } 
     }); 

http://jsfiddle.net/xidius/781qkzq0/49/

je ne sais pas si on peut utiliser tableparams.reload() dans ce cas.

Merci pour l'aide

Répondre

0

En définissant data comme une variable locale conjointement avec rappel getData, vous avez créé une fermeture inutile, ce qui semble être pas ce que vous vouliez.

Voici comment vous pouvez résoudre le problème:

$scope.data = demoDataGenerator.generateData(intero); 
$scope.cols = demoDataGenerator.generateColumns($scope.data[0]); 

if (!$scope.tableParams) { 
    $scope.tableParams = new NgTableParams({ 
    page: 1, // show first page 
    count: 10 // count per page 
    }, { 
    total: $scope.data.length, // length of data 
    getData: function ($defer, params) { 
     params.total($scope.data.length); 
     $defer.resolve($scope.data.slice((params.page() - 1) * params.count(), params.page() * params.count())); 
    } 
    }); 
} else { 
    $scope.tableParams.total($scope.data.length); 
    $scope.tableParams.reload(); 
} 

Voici le violon corrigé: http://jsfiddle.net/kx77f4xk/1/