如何将AngularJS与Google API JavaScript客户端一起使用?
我想知道如何将其转换为AngularJS应用程序。我想它会很整洁 作为后续工作,它将如何与Oauth 2.0一起工作 谢谢 我尝试使用angularjs种子应用程序,并对其进行如下修改-如何将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
// 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"}}