angularjs1.6.4中使用ng-table出现data.slice is not a function的问题

这个问题困扰了我2个小时。

项目中angularjs的版本从1.4.8升级到1.6.4,升级完成之后,发现ng-table不能用了。主要报错信息是ng-table中data.slice is not a function

先说解决方法,

        Factory.getIndex().then(function (data) {
            // $scope.tableParams = new NgTableParams({ count: 4 }, { counts: [], dataset: data });升级到1.6.4之后,data又被封装了一层,所以,需要用下面的写法
            $scope.tableParams = new NgTableParams({ count: 4 }, { counts: [], dataset: data.data });
        }).catch(function (data) {
            $scope.error = "An Error has occured while Loading Trust! " + data.ExceptionMessage;
        });

上面注释已经写清楚了。

再说原因,是dataset: data,中的data在1.4.8和1.6.4中返回的对象不一样。在1.4.8中,data直接是一个数组。而在1.6.4中却是一个对象,数据存放在data下的data属性中。所以写成data.data

原文地址:https://www.cnblogs.com/tfiremeteor/p/6894772.html