Из того, что я понимаю о $q
в AngularJS, он запускает все, что я обновляю на своей странице. Это похоже на включение функции в ng-init
.
Ниже my $q.all
код 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
}
}
как отметил @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();