在AngularJS中加载Google JS Client库

时间:2013-07-03 19:39:55

标签: angularjs

我创建了oauth2服务以使用Google API。以下行加载JS Client库并注册一个onload处理程序,该处理程序在库加载完成后触发:

<script src="https://apis.google.com/js/client.js?onload=load"></script>

我的角度应用已定义:

var myapp = angular.module('myapp', ['ui.state', 'ui.bootstrap', '$strap.directives']);

和服务

myapp.factory('oauth2', function($rootScope) {
    this.load = function() {
        console.log("Load...");
        gapi.client.load('oauth2', 'v2', function() {
            console.log("OAuth2 API loaded");
        });
    };

    ...

    return this;
});

未调用load回调。我也尝试了oauth2.loadmyapp.load但这些都没有奏效。如何配置onload,以致电oauth2.load

1 个答案:

答案 0 :(得分:2)

这是一个完整的猜测,甚至可能不会接近,但也许它可以让其他人看一看。

我的猜测涉及从外部角度访问角度服务。我使用this post作为参考:

// since the callback is referencing the function 'load', define it here:

var load = function(){
    var elem = angular.element(document.querySelector('[ng-controller]'));
    var injector = elem.injector();
    var oauth2 = injector.get('oauth2') // grab the factory
    return oauth2
}

再次 - 只是一个猜测。如果它不起作用,请在下面评论,我将删除!!