在API调用设置数据后,ng-bind没有显示任何内容

时间:2013-08-24 20:29:00

标签: javascript angularjs soundcloud

这是我的代码,用户名没有显示在我的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();
};

1 个答案:

答案 0 :(得分:2)

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

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

您可以找到有关此事的更多信息here