Anguarjs: изменение переменной контроллера с помощью асинхронного метода обслуживания - PullRequest
0 голосов
/ 29 июня 2018

Я объявил пустой список в контроллере, который необходимо обновить с помощью обратного вызова метода из службы:

.controller('appCtrl', function($scope, appService) {
  var list = [];
   appService.sMethod().then(function(result){
     list = result;
   });
    console.log(list);
  })

метод из сервиса асинхронный:

.service('appService', function($timeout){
  return {
    sMethod: function(ctrlVar){
      return $timeout(function(){
        return ['response'];
      })
    }
  }
})

Вы можете попробовать это здесь: https://codepen.io/neptune01/pen/rKoLBj

Видимо, это не работает. Я знаю, есть проблема с ограничениями. Пробовал с .bind(this) и присваиванием self = this, но не могу заставить его работать. Сначала я думал, что это потому, что он обновляется асинхронно, но, глядя на консоль браузера, он не показывает обновленный объект даже после выполнения обратного вызова.

Есть какое-нибудь решение для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...