有没有人成功将traverson集成到Angular2应用程序中?如果是这样,是否有逐步的解决方案?

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

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



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

最佳答案

我设法简单地安装了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);
   }
}

这里的问题是特拉弗森还没有最新的类型,因此您有混合的JS / TS代码。

我没有直接使用可观察对象,这就是我信守 promise 的原因,顺便说一下,这很简单。

请注意,traversson使用其自己的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选项。

希望这可以帮助

关于javascript - traverson.js集成到Angular2应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35725292/

10-09 20:30