Ng-Table tableParams

时间:2014-03-28 00:23:19

标签: angularjs ngtable

我正在关注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错误:" undefined不是一个函数出现"在以下行:

$scope.tableParams = new ngTableParams({

4 个答案:

答案 0 :(得分: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'。

希望这会对你有所帮助。

答案 1 :(得分: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) {    

答案 2 :(得分:0)

试试这个, 替换你的ngTableParams - > NgTableParams angular.module('mean.cars')。controller('CarsController',['$ scope','$ stateParams','$ location','Global','Cars', 函数($ scope,$ stateParams,$ location,Global,Cars,NgTableParams){

$ scope.tableParams = new NgTableParams({.It for me。

答案 3 :(得分:-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()));
    }
});