Używam niektórych danych, które pochodzą z usługi RESTful na wielu stronach. Więc używam do tego fabryk kątowych. Tak więc musiałem raz pobrać dane z serwera i za każdym razem, gdy otrzymuję dane za pomocą tej zdefiniowanej usługi. Podobnie jak zmienne globalne. Oto próbka:
var myApp = angular.module('myservices', []);
myApp.factory('myService', function($http) {
$http({method:"GET", url:"/my/url"}).success(function(result){
return result;
});
});
W moim kontrolerze korzystam z tej usługi jako:
function myFunction($scope, myService) {
$scope.data = myService;
console.log("data.name"+$scope.data.name);
}
Działa dobrze dla mnie, jak na moje wymagania. Ale problem polega na tym, że po ponownym załadowaniu mojej strony internetowej usługa zostanie ponownie wywołana i poprosi o serwer. Jeśli pomiędzy wykonaniem jakiejś innej funkcji, która jest zależna od „zdefiniowanej usługi”, pojawia się błąd, na przykład „coś” jest niezdefiniowane. Dlatego chcę poczekać w moim skrypcie, aż usługa zostanie załadowana. Jak mogę to zrobić? Czy w ogóle można to zrobić w angularjs?