Вы можете использовать сервис angularjs, чтобы запомнить этот «Процесс» создания вызова API и получения данных из него.
Вот простая реализация.
вся идея здесь в том, чтобы создать угловой сервис, который будет делать вызов API,
сохранить данные так же, как и состояние данных, чтобы к ним можно было получить доступ из других модулей angularjs. обратите внимание, что поскольку сервисы angularjs являются одноэлементными, это означает, что все их состояние будет сохранено.
app.service('searchService', function() {
this.searchState={
loading: false,
data: null,
error: null
}
this.fetchSearchResults = function(key){
// call api methods to get response
// can be via callbacks or promise.
this.searchState.loading=true;
someMethodThatCallsApi(key)
.then(function(success){
this.searchState.loading=false;
this.searchState.data=success;
this.searchState.error=null
})
.catch(function(error){
this.searchState.loading=false;
this.searchState.data=null;
this.searchState.error=error
});
}
this.getState = function(){
return this.searchState
}
});
// в вашем контроллере
app.controller('searchController',function(searchService){
// in your initialization function call the service method.
var searchState = searchService.getState();
// search state has your loading variables. you can easily check
// and procede with the logic.
searchState.loading // will have loading state
searchState.data // will have data
searchState.error // will have error if occured.
});
Даже если вы переходите со страниц. угловой сервис сохранит состояние, и вы можете получить те же данные из любой точки приложения. вам просто нужно внедрить сервис и вызвать метод получения.