【问题标题】:Bad reload after change input with Angularjs ngTable使用Angularjs ngTable更改输入后重新加载错误
【发布时间】:2017-05-11 21:00:50
【问题描述】:

我有这个问题:

我想使用 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()。

感谢您的帮助

【问题讨论】:

    标签: javascript jquery angularjs angular ngtable


    【解决方案1】:

    通过将data 定义为局部变量并结合getData 回调, 您创建了一个不必要的闭包,这似乎不是您想要的。

    以下是解决问题的方法:

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

    【讨论】:

      猜你喜欢
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多