根据我对AngularJS中$q
的理解,运行我刷新页面的所有内容。这类似于将函数放入ng-init
。
以下是my $q.all
代码;
$q.all([$scope.getCart(), $scope.getCategory(), $scope.getMenu(), $scope.getRestaurant()]).then(function(data){
$scope.cart = data[0].cart;
$scope.cartItems = data[0].cartItems;
$scope.delDay = data[0].delDay;
$scope.delTime = data[0].delTime;
$scope.cat = data[1];
$scope.itemData = data[2];
$scope.rest = data[3];
});
正如您所看到的,每次刷新页面时都会调用所有函数,并将我的数据添加到$scope
。这按预期工作..
我的问题是如何通过下面的其他功能调用$q
;
$scope.notEnoughTime = function () {
if (year = 2015) {
// invoke $q manually thereby calling
// all the functions and updating all the data in my scopes
}
}
答案 0 :(得分:0)
正如@Scott所提到的,你可以将调用放在一个函数中。根据函数内部的请求,您可以随时调用该函数
var serverRequest = function() {
$q.all()
}
$scope.notEnoughTime = function() {
if (year = 2015) {
serverRequest();
}
}
// if you'd like the call the request when the controller is initialized you simple add the function call to your controller
serverRequest();