1

これは私のコードで、DOM にユーザー名が表示されません。soundcloud API が開始された後、SC.get 呼び出しを使用してデータがロードされ、内部のコールバック関数が $scope.user を応答に設定します。

ブラウザをチェックしても何も表示されません。これを解決するアイデアはありますか?

<div ng-controller="trackCtrl">
    <p ng-bind="user.username"></p>
</div>

function trackCtrl($scope)
{
    $scope.initialize = function() {
        console.log('initialize');
        SC.initialize({
            client_id: "CLIENT_ID",
            redirect_uri: "http://soundcloud.dev/app/callback.html",
        });

        SC.get('/users/marioochoa/', function(user) {
            $scope.user = user;
            $scope.getTracks();
        });
    };

    $scope.getTracks = function() {
        console.log('getTracks');
    };

    $scope.initialize();
};
4

1 に答える 1

2

コールバックは Angular の「外側」から呼び出されるためSC.get、Angular がビューを更新するようにダイジェスト サイクルを手動でトリガーする必要があります。それを行うには、次のように呼び出す必要があります$scope.$apply()

SC.get('/users/marioochoa/', function(user) {
  $scope.$apply(function() {
    $scope.user = user;
    $scope.getTracks();
  });
});

詳細については、こちらをご覧ください

于 2013-08-24T20:37:37.943 に答える