Angularjs ngTable firebase get-TypeError:未定义不是函数

Angularjs ngTable firebase get-TypeError:未定义不是函数,angularjs,firebase,ngtable,Angularjs,Firebase,Ngtable,我将使用ngTable,我是AngularJS的新手,我不知道问题出在哪里:-( 我的错误: TypeError: undefined is not a function at Object.InputController.$scope.tableParams.ngTableParams.getData 我的代码: angular.module("kasseev", ["firebase","ngTable"]); function InputController($scop

我将使用ngTable,我是AngularJS的新手,我不知道问题出在哪里:-(

我的错误:

TypeError: undefined is not a function
    at Object.InputController.$scope.tableParams.ngTableParams.getData 
我的代码:

  angular.module("kasseev", ["firebase","ngTable"]);
  function InputController($scope, $firebase, ngTableParams) {

        var BaseRef = "https://xxxxxxx/";
        var FBBaseRef = new Firebase(BaseRef);
        var KontenRef = FBBaseRef.child("/posten/konto");
        $scope.getKonten = $firebase(KontenRef);
         $scope.tableParams = new ngTableParams({
            page: 1,            // show first page
            count: 10           // count per page
        }, {
        total: $scope.getKonten.length, // length of data
        getData: function($defer, params) {
            $defer.resolve($scope.getKonten.slice((params.page() - 1) * params.count(), params.page() * params.count()));
        }
        });    

有几个选项可以使用ngTables reload fn和firebase on'child_added'方法进行选择,其中一个可以在这里找到。或者您可以将请求放置在angularjs服务/工厂中,并在ngtable getData方法中使用,例如

var data = [];


$scope.tableParams = new ngTableParams ( {
        page : 1,
        count : 10,
        filter : {
        },
        sorting : {
            name : 'asc' // initial filter
        }
    }, {
getData: function ($defer, params) {
kontenService.getKonten ( 'param', function ( res ) {
angular.forEach ( res, function (r) {
data.push (r);

$scope.konten = data;  // not necessary could simply be res
var filteredData = params.filter () ?
                    $filter ( 'filter' ) ( data, params.filter () ) :
                    data;
var orderedData = params.sorting () ?
                  $filter ( 'orderBy' ) ( filteredData, params.orderBy () ) :
                  data;

params.total ( orderedData.length );
$defer.resolve ( orderedData.slice ( (params.page () - 1) * params.count (),
                        params.page () * params.count () ) );
});
}

选择权归你。Tabhair aire

是不是一个承诺?
$defer
我不确定你的意思我用了这个例子,它是一个很长的调用链。哪一个是未定义的?你可以通过设置断点或将每个断点打印到console.log,直到你发现它为止。