Вручную вызвать $ q в AngularJS

0

Из того, что я понимаю о $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
   }
}
  • 1
    Если под «обновить страницу» вы имеете в виду, что вся страница перезагружается, например, нажав «значок обновления» в браузере, то просто поместите $ q.all (..) в функцию внизу вашего контроллера. (последнее) вызовите эту функцию, а затем в вашем notEnoughTime вы можете просто снова вызвать функцию.
Теги:

1 ответ

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();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню