2016-03-01 7 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, но у вас есть гибридный JS/TS-код.

Мне не удалось использовать наблюдаемые напрямую, поэтому я передаю обещание, которое намного проще.

Обратите внимание, что 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.

Надеюсь, что это поможет

Смежные вопросы