从Angular 2应用

时间:2016-11-10 20:04:08

标签: angular typescript google-api google-cloud-platform google-cloud-endpoints

我目前正在重构从Angular 1到Angular 2的网络应用程序,但是我很难找到从Angular 2应用程序连接到Google Cloud Endpoints的任何示例。

我使用angular-cli创建了Angular 2应用程序。我想使用来自几个不同服务的端点api,因此如果任何建议的答案都考虑到这一点,那将更为可取。

在Angular 1中,我做了以下

在我的index.html中:

    <script>
        function init() {
            console.log("Initializing Cloud Endpoints..");
            window.init();
        };
    </script>        

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

和我的main.js:

function Main($scope, $window){
    var vm = this;

    $window.init= function() {
        $scope.$apply(vm.loadApi);
    };

    vm.loadApi = function(){
        gapi.client.load('deviceStockApi', 'v1', function(){

            console.log("Cloud Endpoints are now available");

        }, 'https://name-of-my-endpoints-app.appspot.com/_ah/api');
    }
}   

在Angular 2中,我尝试过

编辑1:我应该注意,我只是想为启动器加载api。这就是我在下面的示例中将所有代码放在index.html文件中的原因。但是,最好的情况是,我更喜欢使用Angular 2应用程序启动和使用Cloud Endpoints的最佳实践解决方案。

在我的index.html中:

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

<script>
  function init() {
    console.log("Init called");

    gapi.client.load('deviceStockApi', 'v1', function(){
      console.log("Cloud Endpoints are now available");
    }, 'https://name-of-my-endpoints-app.appspot.com/_ah/api');
  }
</script>

当我运行webapp时,不调用init函数(没有控制台输出)。但是,似乎脚本已加载。

enter image description here

任何有关如何解决此问题的建议表示赞赏!此外,如果有人发现了Google或其他人详细说明的一些文档,请分享!

1 个答案:

答案 0 :(得分:1)

您是否尝试在此处撤消操作顺序?就像您为Angular 1所做的那样,尝试将apis.google.com导入移动到init代码块下面。