4

我是 AngularJS 的新手,但我真的很喜欢 AngularJS 的工作方式,所以我想将它部署为我的 Google 云端点后端的客户端。然后我立即遇到两个问题:

1,将myCallback放在哪里,以便它能够在 ANGularJs 控制器中工作?

<script src="https://apis.google.com/js/client.js?onload=myCallback"></script>

2,我怎么能做oauth2?控制器如何知道用户是否授权?

gapi.auth.authorize({client_id: myCLIENT_ID,
      scope: mySCOPES,.....

任何帮助表示赞赏。

4

3 回答 3

5

为了用 AngularJs 加载 Google Javascript 库,传递给 Google Javascript 库的 onLoad 的回调函数是引导 AngularJS 的函数,如下所示:

这进入了 html 文件的最后:

<script src="https://apis.google.com/js/client.js?onload=startApp">

然后,在<head>部分中你像这样引导角度:

<script type='text/javascript'>

function startApp() {

    var ROOT = 'http://<yourapi>.appspot.com/_ah/api';
    gapi.client.load('myapifromgoogleendpoint', 'version1', function() {
        angular.bootstrap(document, ["myModule"]);
    }, ROOT);
}

</script>

正如 Kenji 所述,您还需要从 html 中删除 ng-app 指令。

于 2013-04-10T05:47:07.437 回答
0

关于回调 - 为了访问 Angular 控制器,您需要使用注入器(http://docs.angularjs.org/api/AUTO .$injector)

只需创建一个全局回调函数,然后像这样从中获取对控制器的引用:

window.callbackFunction() {
  injector = angular.element(document.getElementById('YourController')).injector()
  injector.invoke(function ($rootScope, $compile, $document) {
    $rootScope.variable = "stuff you want to inject";
  })
}

在此示例中,我将数据注入到 rootScope,但这也适用于特定的控制器范围(只需注入 $scope)

对第二个问题无能为力,因为我不熟悉 gapi,尽管从 angularjs 进行 auth2 调用非常简单。

于 2013-04-09T15:28:24.113 回答
0

在这里,您可以详细了解如何将 angularjs 与 google 端点一起使用:

https://cloud.google.com/developers/articles/angularjs-cloud-endpoints-recipe-for-building-modern-web-applications?hl=es

于 2014-07-08T01:42:50.337 回答