2013-09-16 2 views
1

컨트롤러 내에서 해당 데이터를 사용할 수 있도록 각도 공장에서 사운드 클라우드 가져 오기 요청에서 가져온 데이터를 반환하려고합니다.Soundcloud (SC.get) 요청에서 데이터를 반환하지 않는 각도 팩터 리

app.factory('soundcloud', function() { 
    SC.initialize({ 
     client_id: 'd977aa793080e7656a3b73f35a27406f', 
     redirect_uri: 'http://soundcloud.dev/soundcloud.html' 
    }); 
    var data; 
    SC.get('/users/kavverhouzer', function(data) { 
     data = data; 
    }); 
    return data; 
}); 

컨트롤러에 데이터를 기록하려고하면 '정의되지 않음'이 표시됩니다. 컨트롤러입니다 :

app.controller('AppCtrl', function($scope, soundcloud) { 
    console.log(soundcloud) 
}); 

데이터가로드 될 때까지 기다리는 방법이 있습니까? 약속을 설정합니다 $q

답변

1

봐.

편집 :

아마 뭔가 같은 :

app.factory('soundcloud', function($q) { 
    var deferred = $q.defer(); 
    SC.initialize({ 
     client_id: 'd977aa793080e7656a3b73f35a27406f', 
     redirect_uri: 'http://soundcloud.dev/soundcloud.html' 
    }); 

    SC.get('/users/kavverhouzer', function(data) { 
     deferred.resolve(data); 
    }); 
    return deferred.promise; 
}); 
+0

내가 기압 워드 프로세서를 읽고 있어요, 그 주셔서 감사합니다. 하지만 코드를 보았을 때 나에게 준 객체는 다음과 같습니다. http://j.blck.lv/image/1w0g0f170i3t, 내가 그걸 어떻게할까요? – jvakuiler

+0

개체가 응답입니다. 약속의 패러다임을 읽어라. 그러면 당신이 붙잡을 하루를 절약 할 수있을 것이다. –

+1

더 도움이 될 것입니다. 되돌아온 객체.'.then (function (data) { // 데이터로 작업하기 }) 할 수 있습니다. –

관련 문제