Angular.js发送到很多帖子

时间:2016-06-07 07:06:31

标签: javascript jquery angularjs twitter-bootstrap

我正在使用angular进行单页应用。一切都很好,但是 当我第一次点击它时发送一个$http.post() 在第二次点击2请求等等。所以每次点击+1请求。所以如果我点击4次,那么fith点击就会发送5个请求。我想知道如何防止增量请求。我的代码如下:

app.config(function($httpProvider, $routeProvider) {
    $routeProvider.when('/',{
        templateUrl: 'pages/home.html',
        controller: 'homeController'
    });
});
app.factory('Browser', function($http) {
    return {
        get : function(day) {
            return $http.post('/api/browsers.php', {day:day});
        }
    }
});
app.controller('homeController', function($scope, $http, $routeParams, Browser){
    $scope.loading = true;
    Browser.get('today')
        .success(function(res) {
            $scope.loading = false;
            $scope.browsers = res;
        }).error(function(data) {

        });
    $scope.swiped = function(direction) {
        var day = $('.item.active').data('day');
        if((direction == 'next' && day != 'tomorrow') || (direction == 'prev' && day != 'yesterday')){
            $scope.loading = true;
            $('#days-carousel').carousel(direction);
            $('#days-carousel').on('slid.bs.carousel', function (e) {
                var d = $(e.relatedTarget).data('day');
                Browser.get(d)
                    .success(function(res) {
                        $scope.browsers = res;
                        $scope.loading = false;
                    }).error(function(data) {

                    });
                if(d == 'tomorrow'){
                    $('.right.days-carousel-control').addClass('disabled');
                }else{
                    $('.right.days-carousel-control').removeClass('disabled');
                }
                if(d == 'yesterday'){
                    $('.left.days-carousel-control').addClass('disabled');
                }else{
                    $('.left.days-carousel-control').removeClass('disabled');
                }
            }); 
        }
        return false;
    };
});

因此,当加载索引时,它会发送请求以获取浏览器的默认日期。 我昨天,今天,明天都有自助式旋转木马。 当幻灯片完成时。发送新请求的其他日期,但在下一张幻灯片发送2请求等等。

1 个答案:

答案 0 :(得分:1)

每次调用swiped时绑定public function index() { $products = Product::paginate(15); $categories = Categories::paginate(15); return View::make('site.index', [ 'products' => $products, 'categories' => $categories, ]); // or even shorter // return view('site.index', compact('products', 'categories'); } 。您需要在另一个地方执行此操作,以便它只执行一次,或者在再次绑定之前应该与.on('slid.bs.carousel', function取消绑定。