2017-05-11 37 views
1

改变输入我有这样的问题:坏重装与Angularjs ngTable

我想用ngTable与TableParams负载和更改表。

这里的示例:

页面的初始化后,如果,对于第一次,则在文本框中插入的数,角给我一个数表中的行的,但对于第二(第三...)如果我插入其他数字,表格不刷新。

$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/

我不知道是否有可能使用tableparams.reload()在这种情况下。

感谢您的帮助

回答

0

通过结合getData回调, 你已经创建了一个不必要的关闭,这似乎是你想要的不是定义data作为一个局部变量。

这里是你如何解决这个问题:

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

以下是更正小提琴: http://jsfiddle.net/kx77f4xk/1/