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

由于SC.get回调是从“外部”Angular 调用的,因此您需要手动触发摘要循环,以便 Angular 更新视图。为此,您应该致电$scope.$apply()

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

您可以在此处找到有关该问题的更多信息。

于 2013-08-24T20:37:37.943 回答