【问题标题】:Pagination with Angularjs ui.bootstrap and Firebase使用 Angularjs ui.bootstrap 和 Firebase 进行分页
【发布时间】:2014-06-25 13:33:09
【问题描述】:

有没有 ng-table 的 angularjs 和 firebase 的分页示例。 我的问题是 $scope.data.lenght 未定义,我不知道 promise 如何与 firebase 一起工作。

谢谢,克里斯

function KontenView($scope, $firebase, $filter, $resource) { 

        var FBBaseRef = new Firebase("https://xxxx.firebaseio.com/");
        var KontenRef = FBBaseRef.child("/posten/konto");
        $scope.getKonten = $firebase(KontenRef);


         $scope.currentPage = 1;
         $scope.numPerPage = 5;
         $scope.totalItems = $scope.objects.length;

        $scope.paginate = function(value) {
            var begin, end, index;
            begin = ($scope.currentPage - 1) * $scope.numPerPage;
            end = begin + $scope.numPerPage;
            index = $scope.getKonten.indexOf(value);
        return (begin <= index && index < end);
        };
};

所以我的第二次尝试:

function KontenView($scope, $firebase, $filter, $resource) { 

        var FBBaseRef = new Firebase("https://xxx.firebaseio.com/");
        var KontenRef = FBBaseRef.child("/posten/konto");
        $scope.getKonten = $firebase(KontenRef);

        $scope.getKonten.$on("loaded", function(data) {
                console.log(data); // not undefined
                $scope.totalItems = data.length;

                $scope.currentPage = 1;
                $scope.numPerPage = 5;


                $scope.paginate = function(value) {
                    var begin, end, index;
                    begin = ($scope.currentPage - 1) * $scope.numPerPage;
                    end = begin + $scope.numPerPage;
                    index = $scope.data.indexOf(value);
                    return (begin <= index && index < end);
                 };
        });
 };

控制台将显示数据,但 data.lenght 未定义。为什么???

【问题讨论】:

    标签: angularjs pagination firebase


    【解决方案1】:

    来自 $firebase 的文档:

    服务总是返回一个对象(它永远不会是一个数组或 原始)。如果 Firebase 引用指向一个原始值,它 将被包装在一个带有名为 $value 的键的对象中,其中包含 原始价值。如果引用指向一个数组,你会得到一个 以数组索引为键的对象。如果你想要一个原生数组 而是按优先级排序,请查看orderByPriority filter

    考虑到这一点,$scope.getKonten 和 data 都是对象;对象没有像数组那样的 .length 属性,这解释了未定义的性质。

    【讨论】:

      猜你喜欢
      • 2017-01-05
      • 2015-08-21
      • 1970-01-01
      • 2016-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-07
      相关资源
      最近更新 更多