我创建了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.load
,myapp.load
但这些都没有奏效。如何配置onload
,以致电oauth2.load
?
答案 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
}
再次 - 只是一个猜测。如果它不起作用,请在下面评论,我将删除!!