2016-09-15 3 views
1

서비스에서 정보를 가져 오는 컨트롤러가 있습니다.

컨트롤러에 데이터를 반환하면 뷰에 데이터가 포함되도록 $ scope를 사용하고 있습니다.

몇 가지 console.log가 있는데 그 중 하나는 잘 작동합니다. 그러나 외부에 기록 된 $ 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

관련 문제