2

我创建了一个oauth2使用 Google API 的服务。以下行加载 JS 客户端库并注册一个 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

4

1 回答 1

2

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

我的猜测涉及从外部角度访问角度服务。我用这篇文章作为参考:

// 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
}

再次 - 只是一个猜测。如果不行,请在下方评论,我会删除!!

于 2013-07-03T21:29:43.993 回答