有没有人成功地将 traverson 集成到 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-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);
}
}
这里的问题是 traverson 还没有最新的类型,所以你有一个混合的 JS/TS 代码。
我没有设法直接使用 observable,这就是为什么我忽略了一个 promise,顺便说一下,它要简单得多。
注意 traverson 使用它自己的 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
是遍历选项。
希望对你有帮助
关于javascript - traverson.js 集成到 Angular2 应用程序中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35725292/