2016-03-01 74 views
2

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

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

从traverson使用“require()”开始,运行到相关性问题。典型错误:

Uncaught Error: Module name "minilog" has not been loaded yet for context: _. Use require([])

使用ngUpgrade在traverson-角(角1.x的基础模块)带给也试过,跑进更多的依赖问题......

回答

0

我设法只需安装traverson和使用它的角服务:

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 typings,所以你有一个混合的JS/TS代码。

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

请注意,traverson使用自己的http客户端。如果你想使用的角度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选项。

希望这会有所帮助