【问题标题】:traverson.js integration into Angular2 apptraverson.js 集成到 Angular2 应用程序中
【发布时间】:2016-03-01 14:16:44
【问题描述】:

有没有人成功地将 traverson 集成到 Angular2 应用程序中?如果是这样,有没有一步一步的可用?

尝试将 traverson.js 集成到 Angular2 应用程序中以进行 HATEOAS 遍历。尝试按照这种技术引入 traverson.js (https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.9qx93kgki)。

遇到依赖问题,从 traverson 使用“require()”开始。典型错误:

未捕获的错误:尚未为上下文加载模块名称“minilog”:_。使用 require([])

还尝试使用ngUpgrade 引入 traverson-angular(基于 Angular 1.x 的模块),但遇到了更多依赖问题...

【问题讨论】:

    标签: javascript node.js angular hateoas


    【解决方案1】:

    我设法简单地安装了 traverson 并在 Angular 服务中使用它:

    npm install traverson
    

    然后,为您服务:

    // imports
    
    const traverson = require('traverson');
    
    @Injectable() 
    export class Service { 
       public getData(): Observable<Data> {
          const promise: Promise<Counterparty> = new Promise((resolve, reject) => { 
             traverson 
             .from('http://my-api.com') 
             // Add your traverson options here
             .follow('link', 'other-link')
             .getResource((error, data) => { 
                  if (error) { 
                    reject(error); 
                  } else { 
                    resolve(data); 
                  });
          }
          return Observable.fromPromise(promise); 
       }
    }
    

    这里的问题是 traverson 还没有最新的类型,所以你有一个混合的 JS/TS 代码。

    我没有设法直接使用 observables,这就是我通过 promise 的原因,顺便说一句,这要简单得多。

    请注意,traverson 使用自己的 http 客户端。如果你想使用 Angular http 客户端,你需要创建一个桥接类,它实现了以下方法:

    get(uri: string, options: any, callback: (err, response) => void);
    del(uri: string, options: any, callback: (err, response) => void);
    post(uri: string, options: any, callback: (err, response) => void);
    put(uri: string, options: any, callback: (err, response) => void);
    patch(uri: string, options: any, callback: (err, response) => void);
    

    options 是 traverson 选项。

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2016-07-10
      • 2016-05-03
      • 1970-01-01
      • 2017-01-26
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 2017-09-05
      • 2023-03-18
      相关资源
      最近更新 更多