有没有人成功将traverson集成到Angular2应用程序中?如果是这样,是否有可用的步骤?
尝试将traverson.js集成到用于HATEOAS遍历的Angular2应用程序中。尝试使用此技术(https://medium.com/@s_eschweiler/using-external-libraries-with-angular-2-87e06db8e5d1#.9qx93kgki)拉入traverson.js。
遇到依赖性问题,从traverson使用“require()”开始。典型错误:
未捕获错误:尚未为上下文加载模块名称“minilog”:_。使用require([])
还尝试使用ngUpgrade
引入traverson-angular(基于角度1.x的模块),并遇到更多的依赖性问题......
答案 0 :(得分:0)
我设法简单地安装了traverson并在角度服务中使用它:
@Override
public int getItemCount() {
if (mItems.size() == 0) {
mRecyclerView.setVisibility(View.INVISIBLE);
} else {
mRecyclerView.setVisibility(View.VISIBLE);
}
return mItems.size();
}
然后,在您的服务中:
npm install traverson
这里的问题是没有最新的traverson类型,所以你有一个混合的JS / TS代码。
我没有设法直接使用observable,这就是为什么我通过了一个承诺,顺便说一句,这更简单。
请注意,traverson使用自己的http客户端。如果要使用有角度的http客户端,则需要创建一个桥接类,它实现以下方法:
// 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);
}
}
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);
是遍历选项。
希望这有帮助