Loading large datasets with AngularJS

前端 未结 1 1362
故里飘歌
故里飘歌 2020-12-16 04:47

I\'m trying to devise a way to load large amounts of data (upwards of 1000 rows) into a page, without pagination. The first hurdle in this was to query the DB in parallel bi

相关标签:
1条回答
  • 2020-12-16 05:50

    You can't really $q.all the promises together (which makes them into one big promise that succeeds or fails together) if you want to treat each one individually (display each one individually).

    I would push the things you get back into the scope as soon as you get them. Below is an example:

        function MyCtrl($scope, $timeout, $q) {
            var fetchOne = function() {
                var deferred = $q.defer();
                $timeout(function() {
                    deferred.resolve([random(), random() + 100, random() + 200]);
                }, random() * 5000);
                return deferred.promise;
            };
    
            $scope.scans = [];
            for (var i = 0; i < 2; i++) {
                fetchOne().then(function(items) {
                    angular.forEach(items, function(item) {
                        $scope.scans.push(item);
                    });
                });
            };
        }
    

    Here's a fiddle showing it in action: http://jsfiddle.net/wWcvx/1/

    There's an issue here where the order of the items are based on when they were returned, not on your original request order. I'll let you figure that one out yourself.

    0 讨论(0)
提交回复
热议问题