2016-03-01 24 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選項。

希望這會有所幫助