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 回答