У меня есть требование, что мне нужно создать службу в Angular 1 и загрузить данные с помощью вызова API, который может быть доступен в контроллерах.Ранее я пытался сделать вызов API с помощью службы $ http и присвоить данные переменной / объекту.Затем я внедрил службу и назначил переменную / объект переменной контроллера / объекту области видимости.
То, что я наблюдал в цикле событий контроллера, не совпадает с циклом событий сервиса, а переменная / объект области контроллера остается неопределенной.Позже я получил решение для работы, возвращая обещание из службы и вызывая обещание в контроллере, однако я новичок в обещаниях и не могу полностью принять это, когда я вызывал обещание, я должен был передать функцию какаргумент, который я считаю обратным вызовом для вызова API $ http, но я не уверен, как он работает под капотом.Кто-нибудь может это объяснить?
//service code
this.getuserimages = function(uname) {
console.log("Username in UserImage Service: " + uname);
var promise = $http.get('/api/images/' + uname).then(function(response) {
this.userimages = response.data;
return this.userimages;
});
return promise;
}
// controller code
var userimagespromise = userImageService.getuserimages($routeParams.username);
userimagespromise.then(function(data) {
$scope.userimages = data;