Angular工厂不从Soundcloud(SC.get)请求返回数据

时间:2013-09-16 17:04:29

标签: javascript angularjs xmlhttprequest soundcloud

我正在尝试使用角度工厂返回从soundcloud 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)
});

有没有办法等到数据加载完毕?

1 个答案:

答案 0 :(得分:1)

查看$q

这将建立一个承诺。

编辑:

可能是这样的:

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;
});