0

我完全是 AngularJs 的新手。

我有很好的 ngClick 示例,它正在调用 Facebook 函数。

我想更改它并在我的控制器准备好后以编程方式调用 registerWithFacebook 函数。它的方法是什么?

这是示例:http: //jsfiddle.net/IgorMinar/Hxbqd/5/

    angular.module('HomePageModule', []).service('facebookConnect', function($rootScope) {
        this.askFacebookForAuthentication = function(fail, success) {
            FB.login(function(response) {
                if (response.authResponse) {
                    FB.api('/me', function() { $rootScope.$apply(success) });
                } else {
                   $rootScope.$apply(function() {
                     fail('User cancelled login or did not fully authorize.')
                   });
                }
            });
        }
});

function ConnectCtrl(facebookConnect, $scope, $resource) {

    $scope.user = {}
    $scope.error = null;

    $scope.registerWithFacebook = function() {
        facebookConnect.askFacebookForAuthentication(
        function(reason) { // fail
            $scope.error = reason;
        }, function(user) { // success
            $scope.user = user
        });
    }

    // Tried this but no success
    // $scope.registerWithFacebook();
}

ConnectCtrl.$inject = ['facebookConnect', '$scope', '$resource'];

谢谢

4

1 回答 1

0

如果要异步加载 FB 库,需要在初始化后让 angular 知道。这是一种方法:

http://plnkr.co/edit/YO4duxL1Mh3dwYEEpprV?p=preview

于 2013-04-20T14:45:37.030 回答