错误:'undefined'不是构造函数(评估'new ngTableParams')

时间:2014-09-30 12:38:58

标签: javascript angularjs ngtable

我正在尝试使用ng-table但坚持使用ngTableParams。

[Error] Error: 'undefined' is not a constructor (evaluating 'new ngTableParams')

错误,无论我尝试什么,

当前代码如下所示

$scope.tableParams = new ngTableParams({
    page: 1,
    count: 200,
    sorting: {
        name: 'asc'
    }
}, {
    groupBy: 'area',
    total: TheData.length,
    getData: function($defer, params) {
        // use build-in angular filter
        var orderedData = params.sorting() ? $filter('orderBy')(TheData, params.orderBy()) : TheData;
        $defer.resolve(orderedData.slice((params.page() - 1) * params.count(), params.page() * params.count()));
    }
});

使用ngTable和ngTableParams:

调用app和controller
angular.module('MegaList', ['ui.bootstrap', 'ngTable']);
angular.module('MegaList').controller('DisplayMegaList', ['$scope', 'ngTableParams', function($scope, $http, ngTableParams) {
    ...
}

我想我已经尝试过将'ngTable''ngTableParams'ngTableParams个关键字组合在一起的所有方法,但它仍然无效。

那我该怎么办?

3 个答案:

答案 0 :(得分:3)

这是因为你缺少参数。所有人都必须匹配

angular.module('MegaList')
       .controller('DisplayMegaList', ['$scope', '$http', 'ngTableParams', function($scope, $http, ngTableParams)

答案 1 :(得分:-1)

看起来您在另一个模块上创建控制器。尝试使用MegaList.controller(...)代替FloristList.controller(...)

答案 2 :(得分:-1)

我遇到了类似的问题,只是从这个示例中复制beforeEach帮助了我: https://docs.angularjs.org/guide/unit-testing

beforeEach(inject(function(_$controller_){
  // The injector unwraps the underscores (_) from around the parameter names when matching
  $controller = _$controller_;
}));