ngTable firebase get TypeError:undefined不是函数

时间:2014-06-13 09:10:48

标签: 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($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()));
        }
        });    

1 个答案:

答案 0 :(得分:0)

有一些选项 - 可以在http://plnkr.co/edit/LCBWeu?p=info找到一个选项 - 使用ngTables在'child_added'方法上重新加载fn和firebase。或者您可以将请求放在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