通过AngularJS中的按钮点击/滚动来增加Mongoose查询限制



我想通过点击或滚动按钮来增加数据。

我有一个功能,可以在点击loadDataQueryDB(param, param, param)按钮后加载数据。然后,我将数据传递给MongoDB查询。

那么,我该如何增加我的var limit = 50;+5;每次点击按钮后?

Node.js

router.get('/load', function(req, res) {
    var skip =  0;
    var limit =  50;
    var place_val = req.query.place;
    var category_val = req.query.category;
    var specCategory_val = req.query.specCategory;
    if(category_val, specCategory_val, place_val){    
        Experiences
            .find({category : category_val, city:place_val})
            .lean()
            .skip(skip)
            .limit(limit)
            .exec(function(err, docs_accommo) {
                res.send(docs_accommo);
                console.log("First");

        });
    }
});

Angular.js

app.controller('loadData', ['$scope', '$http', '$window', '$upload', '$rootScope',
    function($scope, $http, $window, $upload, $rootScope) {
  $scope.loadDataQueryDB = function(place_value, category_value, specCategory_value){
    console.log(place_value);
    console.log(category_value);
    console.log(specCategory_value);    
        $scope.datafront = [];
        var options = {
            place : place_value, 
            category: category_value,
            specCategory : specCategory_value
        };
            $http.get('/load',
                     {params: options})
            .success(function(data) {
                $scope.datafront = data;
            }); 
    };
});

HTML

<div ng-click="loadDataQueryDB(place, category, specCategory)">
    <div ng-repeat="x in datafront | limitTo:? track by x._id" ng-cloak>
        {{x}}
    </div>
</div>
<button class="btn btn-default"  style="float:right; margin-bottom:20px;"/>

类似于下面的代码,使用服务和http promise,从服务器返回的数据是在promise.data上

app.controller('loadData', ['$scope', '$http', '$window', '$upload', '$rootScope','dataService',
    function($scope, $http, $window, $upload, $rootScope, dataService) {
  $scope.loadDataQueryDB = function(place_value, category_value, specCategory_value){
    console.log(place_value);
    console.log(category_value);
    console.log(specCategory_value);    
        $scope.datafront = [];
        var params = {
            place : place_value, 
            category: category_value,
            specCategory : specCategory_value
            skip : $scope.skip,
            limit : $scope.limit
            }
        dataService.getData(params).then(function(promise){
            $scope.dataFront = promise.data;
            //Increment the limit by ten
            $scope.limit =+ 10;
        })
    };
});    
app.module('dataService').factory('dataService',['$http',function ($http) {
    var service = {};
    factory.getData= function (params) {
        var promise = $http({
            method: 'GET',
            url: '/load',
            params: params
        });
        return promise;
    }
    return service;
}]);

你应该只有在路由器上返回视图的get,以及在服务上的其他get和post调用,至少我是这样开发的,而且它更舒适。

最新更新