В настоящее время я пишу внешнее приложение с угловым js.
Я использую Restangular для обработки всех запросов REST. Загрузка данных в настоящее время работает идеально.
Я хочу сделать следующее:
Я хочу написать сервис/фабрику/провайдера, который возвращает название каждого языка. Этот вызов нужно сделать только один раз за весь рабочий процесс (маловероятно, что языки, пока пользователь использует приложение).
Итак, я попробовал что-то вроде этого:
'use strict';
angular.module('maroziFrontendApp')
.service('LanguagesService', function(Restangular) {
this.languages = Restangular.one('languages').get();
});
Но когда я введу это в свой контроллер (или преобразователь Restangular Element), я получу только обещание. Затем я должен сделать еще один обратный вызов, и это портит рабочий процесс.
Я также пробовал:
'use strict';
angular.module('maroziFrontendApp')
.service('LanguagesService', function(Restangular) {
Restangular.one('languages').get().then(function(languages) {
this.languages = languages;
});
});
Но это возвращает undefined
при введении.
Чтобы уточнить:
Я хочу, чтобы языки загружались до того, как контроллер (или elementtransformer) будет поражен. Я не могу использовать resolve
, потому что я использую эту службу не только в контроллере.
Есть ли простой способ?