2017-10-17 1 views
-1
angular.module('adminApp') 
.service('subCategoryFinder', ['$http',function($http){ 
     var self = this; 
     self.getSubCategory = function(){ 
      var data = {}; 
      $http.get('/app/admin/category/category.json').then(function (response) { 
       data = response.data; 
       console.log(data); 
       }); 
      return data; 
     } 
}]); 

Ich versuche, die Datenvariablen innerhalb getSubCategory Funktion, sondern die Datenvariable Updates nur innerhalb des inneren Funktionen Umfang zu aktualisieren und nicht die äußere Funktion der Datenvariable was zu leeren Objekt dh aktualisieren {} wie initialisiert. Danke im Voraus!JavaScript Update außerhalb Funktionsvariablen von der inneren Funktion

Antwort

-1

Das Problem ist nicht ungewöhnlich für Entwickler, die das Konzept der Versprechen neu sind. Der $ http-Service gibt eine Zusage zurück, die von der .then() -Methode erfüllt wird. Sie versuchen also, die Antwortdaten zu verwenden, bevor die Methode .then() aufgerufen und das Versprechen erfüllt wird.

Hier ist eine vorgeschlagene refactor Ihrer Dienstleistung zu einem typischen Muster:

angular.module('adminApp') 
    .service('subCategoryFinder', ['$http', function($http) { 
    this.getSubCategory = function() { 
     return $http.get('/app/admin/category/category.json'); 
    }; 
    }]) 
    .controller('myController', ['$scope', 'subCategoryFinder', function($scope, subCategoryFinder) { 
     subCategoryFinder.getSubCategory.then(function(response) { 
     $scope.subCategories = response.data; 
     }); 
    } 
    }]) 
+0

Nizza !!! Wusste das nicht, vielen Dank für Ihre Zeit und Klärung. –

Verwandte Themen