在AngularJS上立即调用函数

时间:2013-04-01 18:57:47

标签: javascript angularjs

我是AngularJs的新手。

我有一个很好的例子,就是调用Facebook功能的ngClick。

我想在我的控制器准备就绪后更改它并以编程方式调用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'];

由于

1 个答案:

答案 0 :(得分:0)

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

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