我有这个控制器从服务中获取信息。
当我将数据返回给控制器时,我使用$ scope来让视图拥有数据。
我有一些console.logs和then函数内的那些工作正常。但是在外面,记录的$ scope对象有一个.data但是当我尝试console.log时,它会以空对象的形式返回。
我的代码中有什么错误吗?
(function() {
angular
.module("eplApp")
.controller("tableCtrl", TableController);
TableController.$inject = ['httpService', "$scope"];
function TableController(service, $scope) {
var apiTableUrl = "http://api.football-data.org/v1/soccerseasons/426/leagueTable";
$scope.data = {};
service.getListFromUrl(apiTableUrl).then(function(data) {
$scope.data = data;
console.log($scope);
console.log($scope.data);
});
console.log($scope);
console.log($scope.data);
}
})();
答案 0 :(得分:1)
Angular是异步的,这就是为什么你可以在服务响应之外进行控制的原因
尝试以这种方式打印数据..
function TableController(service, $scope) {
$scope.data = {};
service.getListFromUrl(apiTableUrl).then(function(data) {
$scope.data = data;
printData();
});
function printData() {
console.log($scope.data);
}
}