7

我正在关注 ng-table 的第一个示例(http://bazalt-cms.com/ng-table/example/1)。

除了 tableParams 之外,一切似乎都有效。一旦我将它包含在控制器中,页面中就不会显示任何内容。

示例和我的代码之间的区别在于我从 json 服务加载数据:

angular.module('mean.cars').controller('CarsController', ['$scope', '$stateParams', '$location', 'Global', 'Cars',
function ($scope, $stateParams, $location, Global, Cars, ngTableParams) {
    $scope.global = Global;
    var data = Cars.query();

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

Cars.query(); 运行良好(经过测试)。那么我错过了什么?以下行有一个 javascript 错误:“未定义不是正在发生的函数”:

$scope.tableParams = new ngTableParams({
4

4 回答 4

21

我也是 Angular 和 ngTable 插件的新手,但我认为您的问题是您没有在模块上添加 ngTable 的引用。

angular.module('mean.cars', ['ngTable'])
       .controller('CarsController', ['$scope', 
                                      '$stateParams', 
                                      '$location', 
                                      'Global', 
                                      'Cars', 
                                      'ngTableParams', 
            function ($scope, $stateParams, $location, Global, Cars, ngTableParams) { ...

您错过了模块依赖项上的“ngTable”,以及控制器上的“ngTableParams”。

希望这对您有所帮助。

于 2014-04-10T23:17:01.893 回答
5

我不确定 ngTableParams 来自哪里,但你没有注入它:

['$scope', '$stateParams', '$location', 'Global', 'Cars',
function ($scope, $stateParams, $location, Global, Cars, ngTableParams) {

要么应该是这样的:

['$scope', '$stateParams', '$location', 'Global', 'Cars', 'ngTableParams',
function ($scope, $stateParams, $location, Global, Cars, ngTableParams) {

或者像这样:

['$scope', '$stateParams', '$location', 'Global', 'Cars',
function ($scope, $stateParams, $location, Global, Cars) {    
于 2014-03-28T12:41:49.323 回答
0

试试这个,替换你的 ngTableParams -> NgTableParams angular.module('mean.cars').controller('CarsController', ['$scope', '$stateParams', '$location', 'Global', 'Cars',功能($scope,$stateParams,$location,全球,汽车,NgTableParams){

$scope.tableParams = new NgTableParams({ .它对我有用。

于 2017-07-21T09:16:14.880 回答
-2

在 getData 中运行您的服务

$scope.tableParams = new ngTableParams({
    page: 1,            // show first page
    count: 10           // count per page
}, {
    total: data.length, // length of data
    getData: function($defer, params) {
        data = Cars.query();
        $defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
    }
});
于 2015-04-25T00:06:17.750 回答