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

有没有人成功地将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的模块),并遇到更多的依赖性问题…

       

网上收集的解决方案 "将traverson.js集成到Angular2应用程序中"

我设法简单地安装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 typting,所以你有一个混合的JS / TS代码。

我没有设法直接使用observables,这就是为什么我通过一个承诺,这是非常简单的方式。

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

 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选项。

希望这可以帮助