这个问题困扰了我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