1

angular jsを使用してfb名を印刷できません。何が問題なのかわかりません。以下のコードでは、「no_name」が出力されます。JSON アラートが正しく表示されます。

I have this view code trying to print l from the scope 
<div ng-controller="TestCtrl">
{{n}}
</div>

This is the controller code:
function TestCtrl($scope){

$scope.n="no_name";// default value

    FB.login(function(response) {// fb login as soon as the ui loads
        if (response.authResponse) {
            FB.api('/me', function(response) {
                alert(JSON.stringify(response));
                $scope.n=response.name;
            });
        } else {
            //do nothing..
        }
    });

}
4

1 に答える 1

7

FBは、AngularJSとそのイベントサイクルを認識していない外部モジュールであると思います(または$scope.$apply()、私が考える呼び出しはそれほど説明的ではないと思います)

この場合、スコープを変更するコールバックをラップする必要があります$apply

 FB.login(function(response) {// fb login as soon as the ui loads
        if (response.authResponse) {
            FB.api('/me', function(response) {
                alert(JSON.stringify(response));
                $scope.$apply(function() {
                   $scope.n=response.name;
                });
            });
        } else {
            //do nothing..
        }
    });
于 2013-02-05T16:41:40.103 に答える