1

コントローラ内でそのデータを使用できるように、角度ファクトリを使用して 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)
});

データが読み込まれるまで待つ方法はありますか?

4

1 に答える 1

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;
});
于 2013-09-16T17:09:26.880 に答える