有没有人成功将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/