我在控制器中声明了一个空列表,需要通过服务中方法的回调对其进行更新:
.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
,但无法正常工作。起初我以为是因为它是异步更新的,但是在浏览器控制台中,即使执行了回调,它也不会显示更新的对象。
有什么解决办法吗?