Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
How to avoid calling this method twice?
Message
 
 
À
Tous
Information générale
Forum:
Javascript
Catégorie:
Autre
Titre:
How to avoid calling this method twice?
Divers
Thread ID:
01611738
Message ID:
01611738
Vues:
42
Hi everybody,

I have two pages in the same form that need to access the same data.

Each of the pages is controlled by its own controller and both have this code in the init:
invoicesService.getMetaData().then(function (data) {
                        $scope.invoicesMetaData = data;

                    });
So, I want to somehow adjust the service code to not invoke the method twice. Here is what I attempted to do but it's not working:
app.factory('invoicesService', ['$http', '$q', function($http, $q) {

        var metaData = null;

        var getMetaData = function () {
            if (angular.isObject(metaData))
                return metaData;

            var deferred = $q.defer();
            $http.get('/api/invoices/metadata')
                .success(function (data) {
                    metaData = data;
                    deferred.resolve(data);
                    
                })
                .error(function (data, status, header, config) {
                    deferred.reject(status);
                });
            return deferred.promise;
        };
I still get 2 hits in my API controller. Do you see how should I change the above to avoid the second call after the first one was already made?

Thanks in advance.
If it's not broken, fix it until it is.


My Blog
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform