如何重装ngtable使用$ scope.tableParams.reload();?重装、ngtable、scope、tableParams

2023-09-13 04:01:32 作者:╅亂べんa

我正在使用的角度JS NG-表。我的问题是删除我的表中的一个记录数据不重新加载。这是我的code

  myapp.controller('aamListAssignment',['$范围,$ HTTP,ngTableParams',函数($范围,$ HTTP,ngTableParams){        $ scope.data = [];        $ scope.listPromise = NULL;        $范围。$表(数据功能(){            $ scope.tableParams.reload();        });        $ scope.list =功能(){            $ scope.listPromise = $ http.get('./ CCS /转让/所有')。成功(功能(数据){                $ scope.data =数据;                $ scope.tableParams =新ngTableParams({                    页面:1,//显示第一页                    数:2 //每页计                },{                    罪状:[],                    总计:$ scope.data.length,//数据的长度                    的getData:函数($延迟,则params){                        $ defer.resolve($ scope.data.slice((params.page() -  1)* params.count(),params.page()* params.count()));                    }                });            });        };        $ scope.removeAssignment =功能(ID){            $ scope.value = TRUE;            $ scope.Url =./ccs/assignment/removeAssignment/+ ID;            $ http.get($ scope.Url).success(功能(数据){                的console.log('后删除:'+ $ scope.id);               // $ location.path(AAM / listAssignment /');                $ scope.list();            });        };        $ scope.list();    }]); 

执行时间两种类型的错误发生在一个控制台页面是

 错误:$ scope.tableParams未定义.............. 

 错误:H $范围为空.......... 
ThinkPad New S2原装win10如何换win7,小白请进

请帮我解决这个问题。

我是用另一种方式,这一次重装工作,但不分页working.the code是

  myapp.controller('aamListAssignment',['$范围,$ HTTP,ngTableParams',函数($范围,$ HTTP,ngTableParams){    $ scope.tableParams = {};    $ scope.data = [];    $ scope.listPromise = NULL;    $ scope.list =功能(){        $ scope.listPromise = $ http.get('./ CCS /转让/所有')。成功(功能(数据){            $ scope.data =数据;            $ scope.tableParams.reload();        });    };    $ scope.tableParams =新ngTableParams({        页面:1,//显示第一页        数:6 //每页计    },{        罪状:[],        总计:$ scope.data.length,//数据的长度        的getData:函数($延迟,则params){            $ defer.resolve($ scope.data.slice((params.page() -  1)* params.count(),params.page()* params.count()));        }    });    $ scope.removeAssignment =功能(ID){        $ scope.value = TRUE;        $ scope.Url =./ccs/assignment/removeAssignment/+ ID;        $ http.get($ scope.Url).success(功能(数据){            的console.log('后删除:'+ $ scope.id);            $ scope.list();        });    };    $ scope.list();}]); 

解决方案

如果你只是请求数据,然后只分页上阵,还有的必须是没有问题的,如果你需要分页每个请求再看看< A HREF =htt​​p://plnkr.co/edit/zuzcma?p=info相对=nofollow>此处,也不要忘记遍历 $数据

 &LT; TR NG重复=用户$ DATA&GT; 

修改

在你普拉克您应该添加通话,喜欢这里

 总:data.length,//数据的长度        的getData:函数($延迟,则params){        //需要FO分页!        params.total(data.length);                $ defer.resolve(data.slice((params.page() -  1)* params.count(),params.page()* params.count()));        } 

编辑2

你的工作普拉克与上面的编辑

I am using ng-table in angular js. My problem is delete one record in my table the data is not reloaded. this is my code

 myapp.controller('aamListAssignment', ['$scope', '$http', 'ngTableParams', function ($scope, $http, ngTableParams) {

        $scope.data = [];
        $scope.listPromise = null;
        $scope.$watch("data", function () {
            $scope.tableParams.reload();
        });    

        $scope.list = function () {
            $scope.listPromise = $http.get('./ccs/assignment/all').success(function (data) {
                $scope.data = data;
                $scope.tableParams = new ngTableParams({
                    page: 1, // show first page
                    count: 2           // count per page
                }, {
                    counts: [],
                    total: $scope.data.length, // length of data
                    getData: function ($defer, params) {
                        $defer.resolve($scope.data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
                    }
                });
            });
        };
        $scope.removeAssignment = function (id) {
            $scope.value = true;
            $scope.Url = "./ccs/assignment/removeAssignment/" + id;
            $http.get($scope.Url).success(function (data) {
                console.log('after delete: ' + $scope.id);
               // $location.path('aam/listAssignment/');
                $scope.list();
            });
        };

        $scope.list();
    }]);

Execute time two types of errors occurred in a console page that is

"Error: $scope.tableParams is undefined..............

and

"Error: h.$scope is null..........

please help me to this problem.

I am using another way, this time reload is working,but pagination not working.the code is

myapp.controller('aamListAssignment', ['$scope', '$http', 'ngTableParams', function ($scope, $http, ngTableParams) {

    $scope.tableParams = {};
    $scope.data = [];
    $scope.listPromise = null;
    $scope.list = function () {
        $scope.listPromise = $http.get('./ccs/assignment/all').success(function (data) {
            $scope.data = data;
            $scope.tableParams.reload();
        });

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

    $scope.removeAssignment = function (id) {
        $scope.value = true;
        $scope.Url = "./ccs/assignment/removeAssignment/" + id;
        $http.get($scope.Url).success(function (data) {
            console.log('after delete: ' + $scope.id);
            $scope.list();
        });
    };
    $scope.list();

}]);

解决方案

if you just request data ,and then just paginate on array,there 's must be no problem,if you need to paginate every request then have a look here ,and don't forget to iterate over $data

<tr ng-repeat="user in $data">

Edit

in your plunk you should add total call,like here

total: data.length, // length of data
        getData: function($defer, params) {
        //need fo pagination!!
        params.total(data.length);
                $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));

        }

Edit 2

your working plunk with editing above