Использование асинхронного сервиса в AngularJS 1.5 - PullRequest
0 голосов
/ 13 мая 2018

Я довольно новичок в мире углов.Создание синглтон-сервиса для использования в моем контроллере.Сервисный код ниже

      function obiUrlService(remote, SERVER_URL, URI, OBI_URL) {
      this.obiUrl = this.getObiurl;
       this.getObiurl = function() {
       remote
         .get(SERVER_URL + URI.obiDocumentViewer + '/' + OBI_URL.obiUrl)
         .then(function(data) {
          return data;
       });
     };
    }

Примечание: удаленный - это отдельная услуга, которую я использую здесь.

Я хотел, чтобы мой контроллер использовал этот сервис, например, *

    vm.myurlData = obiUrlService.obiUrl;

1 Ответ

0 голосов
/ 13 мая 2018

JavaScript делает неблокирующий ввод / вывод. Удаленный сервис не может вернуть данные. Он может только вернуть обещание, из которого извлекаются данные.

app.service("obiUrlService",
  function obiUrlService(remote, SERVER_URL, URI, OBI_URL) {
    ̶t̶h̶i̶s̶.̶o̶b̶i̶U̶r̶l̶ ̶=̶ ̶t̶h̶i̶s̶.̶g̶e̶t̶O̶b̶i̶u̶r̶l̶;̶
    this.getObiUrl = function() {
      return remote
        .get(SERVER_URL + URI.obiDocumentViewer + '/' + OBI_URL.obiUrl);
        ̶.̶t̶h̶e̶n̶(̶f̶u̶n̶c̶t̶i̶o̶n̶(̶d̶a̶t̶a̶)̶ ̶{̶
         ̶r̶e̶t̶u̶r̶n̶ ̶d̶a̶t̶a̶;̶
       ̶}̶)̶;̶
  };
})

В контроллере:

obiUrlService.getObiUrl.then(function(data) {
  vm.myurlData = data;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...