【问题标题】:AngularJS and google cloud endpoint: walk through neededAngularJS 和谷歌云端点:遍历需要
【发布时间】:2013-04-01 02:35:58
【问题描述】:

我是 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,.....

感谢任何帮助。

【问题讨论】:

    标签: angularjs google-cloud-endpoints


    【解决方案1】:

    用AngularJs加载谷歌Javascript库,传递给谷歌Javascript库的onLoad的回调函数就是引导AngularJS的函数,像这样:

    进入html文件的最后:

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

    然后,在&lt;head&gt; 部分中,您可以像这样引导角度:

    <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 指令。

    【讨论】:

    • 对于以上尝试的人,您必须删除 ng-app,例如 它是“手动引导”技术之一,在设置 ng-app 时不起作用。
    • 我认为Kenji的评论应该包含在答案中;它可以为人们节省很多时间(尤其是角度初学者)
    【解决方案2】:

    关于回调 - 为了访问 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 调用非常简单。

    【讨论】:

      【解决方案3】:

      这里有关于如何将 angularjs 与 google 端点一起使用的详细信息:

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

      【讨论】:

        猜你喜欢
        • 2015-10-27
        • 2014-07-05
        • 1970-01-01
        • 1970-01-01
        • 2018-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多