2016-09-15 28 views
1

我有這個控制器從服務中獲取信息。

當我將數據返回給控制器時,我使用$ scope來讓視圖有數據。

我有幾個console.logs和在那裏的功能工作正常。不過在外面,獲取記錄的$ 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); 
    } 
})(); 
+1

當時從'的服務承諾。 getListFromUrl'沒有解析,因此它沒有設置'$ scope.data = data;'。 – taguenizy

回答

1

角是異步的,這就是爲什麼你不能安慰它外部服務的響應

嘗試打印數據這樣..

function TableController(service, $scope) { 
    $scope.data = {}; 

    service.getListFromUrl(apiTableUrl).then(function(data) { 
    $scope.data = data; 
    printData(); 
    }); 

    function printData() { 
    console.log($scope.data); 
    } 
} 
+0

謝謝你的回答。這確實現在將數據打印到控制檯。但是如果我想在視圖中使用這些數據呢?我可以直接從getList ...函數中引用它,還是需要做一些特殊的事情? –

+1

是的,你可以直接在視圖中使用它 – Rakeschand

相關問題