Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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
如何将AngularJS与Google API JavaScript客户端一起使用?_Javascript_Oauth 2.0_Angularjs - Fatal编程技术网

如何将AngularJS与Google API JavaScript客户端一起使用?

如何将AngularJS与Google API JavaScript客户端一起使用?,javascript,oauth-2.0,angularjs,Javascript,Oauth 2.0,Angularjs,我想知道如何将其转换为AngularJS应用程序。我想它会很整洁 作为后续工作,它将如何与Oauth 2.0一起工作 谢谢 我尝试使用angularjs种子应用程序,并对其进行如下修改- // controller.js function SampleListCtrl ( $scope, $http ){ $http. jsonp( 'https://apis.google.com/js/client.js?onload=JSON_CALLBACK' ). success( fun

我想知道如何将其转换为AngularJS应用程序。我想它会很整洁

作为后续工作,它将如何与Oauth 2.0一起工作

谢谢

我尝试使用angularjs种子应用程序,并对其进行如下修改-

// controller.js

function SampleListCtrl ( $scope, $http ){
  $http.
  jsonp( 'https://apis.google.com/js/client.js?onload=JSON_CALLBACK' ).
  success( function () {
    alert( 'go go GO' );
    function makeRequest () {
    var request = gapi.client.urlshortener.url.get({
      'shortUrl': 'http://goo.gl/fbsS'
    });

   request.execute( function(response) {
       $scope.longUrl = response.longUrl;
     });
   }

    gapi.client.setApiKey( 'XXXX' );
    gapi.client.load( 'urlshortener', 'v1', makeRequest );

    $scope.samples = data.feed.entry;
  });
};
在index.html中

<div ng-controller="SampleListCtrl">
    <h4>{{ longUrl }}</h4>
</div>
我不确定会返回什么,所以我检查了arguments对象,因此控制台中的输出是-

{"1":0,"3":{"method":"JSONP","url":"https://apis.google.com/js/client.js?onload=JSON_CALLBACK"}}

警报未触发,表示回调不起作用。我怎样才能让它工作呢?有更好的方法吗?

您请求的是JSON,但加载的是javascript库,对吗?我不认为http服务是为这个目的而设计的。您需要在引导之前加载脚本,或者集成脚本加载程序来动态加载脚本


如果您正在使用Angular Seed模板,那么您可以将google API添加到index.html中的脚本中,或者使用异步加载程序。

如果没有调用“success”,则很可能是“error”,并且其中会有一些信息,可以告知您可能出现的错误。如果你想得到一些关于如何“角度化”的建议,请把所有谷歌特有的东西放到一个Service@RoyTruelove谢谢你的提示,我试过了,但似乎没有收到任何错误消息。我已经更新了我的问题“arguments”是在哪里定义的?我指的是javascript arguments数组:你是对的,这就是示例所建议的,但感觉好像我会反对mvc模式。这就是为什么我试图将此功能强加到控制器中。我可能错了,也可能走错了路。是否有方法将脚本加载的结果绑定到$scope或在视图中显示它?或者将控制器中的函数公开给DOM事件,如“document.ready”?@Peter为什么这会违反MVC模式?MVC模式描述应用程序的结构。@Peter(对不起,我编辑太慢了…)。MVC模式描述应用程序的结构,而不是动态加载或预先加载脚本文件。您当然可以将脚本加载器包含到应用程序中,并将其注入任何控制器/服务/指令中。我还没有机会尝试这种方法,但我认为这是正确的方法。谢谢。:-)很高兴看到JSFIDLE介绍如何在angular中加载js库并使用它。现在我正在开发我的第一个应用程序,这很难。
{"1":0,"3":{"method":"JSONP","url":"https://apis.google.com/js/client.js?onload=JSON_CALLBACK"}}