在AngularJS中立即调用函数

Calling function immedietaly at AngularJS

本文关键字:调用 函数 AngularJS      更新时间:2023-09-26

我对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'];

谢谢

如果你想异步加载FB库,你需要在angular初始化之后让它知道。下面是一种方法:

http://plnkr.co/edit/YO4duxL1Mh3dwYEEpprV?p =预览