我正在使用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请求等等。
答案 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
取消绑定。