-1

高级问题:

  • 我想知道当前用户是否已登录 Google Plus。

部分解决方案:

并发症:

具体问题:

  • 我想将一个回调方法附加到 onload 参数,但异步 JavaScript 获取https://apis.google.com/js/client.js发生在 AngularJS 的 run 方法中。

-> 模块初始化:

.run([function() {  
  var po = document.createElement('script');  
  po.type = 'text/javascript';  
  po.async = true;  
  po.src = 'https://apis.google.com/js/client.js';  
  var s = document.getElementsByTagName('script')[0];  
  s.parentNode.insertBefore(po, s);  
}]);

尽管 Google 建议您https://apis.google.com/js/client.js异步获取,但我并不喜欢它。但我想将大部分 Google+ 集成代码保留在 AngularJS 提供程序或 AngularJS 服务中。

任何帮助,将不胜感激。

4

1 回答 1

0

我看不出使用 onload 方法有什么问题。

.run(['$rootScope', function($rootScope) {  
    var po = document.createElement('script');  
    po.type = 'text/javascript';  
    po.async = true;  
    po.src = 'https://apis.google.com/js/client.js';  
    po.onload = function(){
        //it's loaded. Inject a service in your run and you can do stuff here
        $rootScope.$apply(); //assuming your callback needs to do something within angular
    };
    var s = document.getElementsByTagName('script')[0];  
    s.parentNode.insertBefore(po, s);
}]);
于 2015-04-28T17:38:03.263 回答