在AngularJS

时间:2015-12-05 00:50:21

标签: javascript angularjs

根据我对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
   }
}

1 个答案:

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