Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/426.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在AngularJS处立即调用函数_Javascript_Angularjs - Fatal编程技术网

Javascript 在AngularJS处立即调用函数

Javascript 在AngularJS处立即调用函数,javascript,angularjs,Javascript,Angularjs,我对AngularJs完全是新手 我有一个很好的ngClick的例子,它调用了一个Facebook函数 我想更改它,并在控制器准备就绪后通过编程调用registerWithFacebook函数。怎么办 以下是示例: 谢谢如果要异步加载FB库,需要在初始化后通知angular。以下是一种方法: 你所说的“页面加载”具体是什么意思?为什么这需要在那个时候运行呢?我只是在练习,想手动调用registerWithFacebook。我所说的“页面加载”是指类似于(“$viewContentLoaded”,

我对AngularJs完全是新手

我有一个很好的ngClick的例子,它调用了一个Facebook函数

我想更改它,并在控制器准备就绪后通过编程调用registerWithFacebook函数。怎么办

以下是示例:


谢谢

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


你所说的“页面加载”具体是什么意思?为什么这需要在那个时候运行呢?我只是在练习,想手动调用registerWithFacebook。我所说的“页面加载”是指类似于(“$viewContentLoaded”,registerWithFacebook”)的
$scope.$on但它不能work@JoshDavidMiller我还编辑了我的问题,以说明我更想要什么。谢谢。你的
FB.init
在哪里?顺便说一句,你的小提琴不包括实际的FBSDK脚本。关于你的问题,在angular controller中执行的任何操作都是在应用程序加载之后执行的,在大多数情况下,这意味着dom准备就绪之后;因此,在定义itI后,您只需调用
$scope.registerWithFacebook()
,我还没有添加问题的所有部分。FB.init部分实际上在Fiddle上可用<代码>$scope.registerWithFacebook()
也不起作用。有可能让它在我的小提琴上为我工作吗?
    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'];