Updating scope with multiple queries

When loading data from multiple sources, use $q.all to update scope once when ALL assets are loaded...

by johnwun

JavaScript

.controller('AdminCustomController', ['$scope', '$routeParams', '$window', '$location', '$q', 'countriesResource', 'titlesResource', 'townsResource', 'favcolorsResource', 'customersResource',

function ($scope, $routeParams, $window, $location, $q, countriesResource, titlesResource, townsResource, favcolorsResource, customersResource) {

    // Setup the promises
    var customer = ;
    var titles = titlesResource.query();
    var towns = titlesResource.query();
    var colors = favcolorsResource.query();
    var countries = countriesResource.query();

    // Combines all the promises together
    $q.all([customer, titles, towns, colors, countries]).then(function (promises) {
        
        // Update the scope in one go
        $scope.customer = promises[0];
        $scope.titles = promises[1];
        $scope.towns = promises[2];
        $scope.colors = promises[3];
        $scope.countries = promises[4];
        $scope.loading = false;
    });
}]);