Anguarjs:通过异步服务方法更改控制器变量

时间:2018-06-29 08:44:21

标签: javascript angularjs

我在控制器中声明了一个空列表,需要通过服务中方法的回调对其进行更新:

.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,但无法正常工作。起初我以为是因为它是异步更新的,但是在浏览器控制台中,即使执行了回调,它也不会显示更新的对象。

有什么解决办法吗?

0 个答案:

没有答案