【问题标题】:How to import a Amazon AWS's client javascript into my Ionic 2/Angular 2 app?如何将 Amazon AWS 的客户端 javascript 导入我的 Ionic 2/Angular 2 应用程序?
【发布时间】:2016-11-03 02:16:07
【问题描述】:

我正在开发一个 Angular 2/Ionic2 应用程序,它使用由 Amazon AWS 生成的自定义客户端 api。

此 api 由一个 javascript 及其依赖项组成,这些依赖项是其他 javascripts。

通常我会把它放到 html 中的脚本标签中,但我使用的是 typescript。

在主 javascript 中有一个这样声明的对象:

var apigClientFactory = {};
apigClientFactory.newClient = function (config) {
    var apigClient = { };
    if(config === undefined) {
        config = {
            accessKey: '',
            secretKey: '',
            sessionToken: '',
            region: '',
            apiKey: undefined,
            defaultContentType: 'application/json',
            defaultAcceptType: 'application/json'
        };
    }
...

在服务中我需要以这种方式调用 api:

    var apigClient = apigClientFactory.newClient();

    var params = {
      limit: 5
    };


    var body = {

    }

    var additionalParams = {

    }

    var headers = {

    }



    var queryParams = {

    }

    apigClient.cadastroOptions (params, body, additionalParams).then(function(result){
        var json = JSON.parse(result.data);

        console.log('Result', json);

    }).catch('Sucesso', function(json){
        console.log('Falha: ', json)
    });

它不是一个节点模块。这是一个以 zip 格式下载的 api。

如何在我的应用程序中导入它?

【问题讨论】:

  • 我猜你正在使用 SystemJS 来加载你的模块。也许看看如何使用系统 js 加载 js 文件? :)
  • 我通过“ionic start ionic2-tutorial-github blank --v2 --ts”安装了它。此命令安装一个启动包,似乎不是基于 SystemJS。它似乎基于 Gulp。

标签: javascript import typescript angular ionic2


【解决方案1】:

我最近遇到了这个问题,将脚本标签添加到您的 index.html 中,然后在您的组件中添加以下内容:

declare var apigClientFactory: any;

@Component({
selector: '<selector>',
templateUrl: './<html>',
styleUrls: ['<css>']
})

export class <your class> {
    constructor(){}
}

请注意,如果您使用的是 webpack,则不会将其添加到依赖项中。

【讨论】:

    【解决方案2】:

    您需要安装 aws-sdk module from npm 和它的类型。

    1. npm install aws-sdk --save
    2. typings install dt~aws-sdk --save --global

    实际上在您的项目中使用 lib 可能会有所不同,但 angular-cli 在 importing 3rd party libs 上的指南可能有助于(特别是任何给定部分的最后一步)展示如何完成。

    【讨论】:

    • 我认为 OP 意味着 API 网关的自定义 SDK。目前看来,将它与 Angular2/Typescript 一起使用的唯一方法是手动创建类型定义。或者使用 swagger-codegen 生成替代 SDK,尽管这仅适用于公共 API。
    • @dinvlad 您的评论似乎更适合作为答案,因为它提供了比我的解决方案更好的洞察力。
    猜你喜欢
    • 2016-11-04
    • 1970-01-01
    • 2017-07-03
    • 2023-03-16
    • 1970-01-01
    • 2016-09-25
    • 2017-12-17
    • 2017-04-26
    • 1970-01-01
    相关资源
    最近更新 更多