我在我的详细信息组件中检测到url参数是否更改:
this.route.params
.subscribe(
(params: Params) => {
console.log('route parameter changed');
this.id = +params['id'];
this.dataStorageDervice.getMeldunek(this.id);
}
);
在我的REST服务中,我有一个方法:
getMeldunek(id: number) {
this.http.get('http://192.168.0.154:8080/api/rezerwacja/getPrzyjazdy/rezerwacja?id=' + id)
.map((response: Response) => {
const meldunek: Meldunek = response.json();
return meldunek;
});
}
如何连接这两个并将响应传递给我的组件?
答案 0 :(得分:0)
您错过了return
声明:
getMeldunek(id: number) {
return this.http
.get('http://192.168.0.154:8080/api/rezerwacja/getPrzyjazdy/rezerwacja?id=' + id)
.map((response: Response) => {
const meldunek: Meldunek = response.json();
return meldunek;
});
}
答案 1 :(得分:0)
添加AddWeb Solution Pvt Ltds answer中指出的缺少的return语句:
getMeldunek(id: number) {
return this.http
.get('...' + id)
.map((response: Response) => {
const meldunek: Meldunek = response.json();
return meldunek;
});
}
尝试使用mergeMap
在第二个Observable
(Observable
)中使用第一个this.dataStorageDervice.getMeldunek
(this.route.params)的结果。然后subscribe
到那个:
export class YourComponent {
ngOnInit() {
this.route.params
.mergeMap((params: Params) => {
console.log('route parameter changed');
this.id = +params['id'];
return this.dataStorageDervice.getMeldunek(this.id);
}).subscribe(meldunek => {
// do something with your meldunek
});
}
}