traverson.js集成到Angular2应用程序中

traverson.js integration into Angular2 app

本文关键字:应用程序 Angular2 js 集成 traverson      更新时间:2023-09-26

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

尝试将traverson.js集成到Angular2应用程序中,用于HATEOAS遍历。尝试拉入遍历.js根据此技术 (https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.9qx93kgki)。

遇到依赖问题,从遍历对"require()"的使用开始。 典型误差:

未捕获错误:尚未加载上下文的模块名称"minilog":_。使用要求([])

还尝试使用 ngUpgrade 引入遍历角(基于 angular 1.x 的模块),并遇到了更多的依赖问题......

我设法简单地安装了遍历并在角度服务中使用它:

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); 
   }
}

这里的问题是,目前还没有遍历的最新类型,因此您有一个混合的 JS/TS 代码。

我没有设法直接使用可观察量,这就是为什么我传递了一个承诺,顺便说一下,这要简单得多。

请注意,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是遍历选项。

希望这有帮助