我需要在服务和组件中的请求之后获取数据。我找到了一种方法,只能通过subscription.add method.
服务代码:
itemList: any[];
constructor(private http: HttpClient){}
getData(){
return this.http.get('items.json').subscribe(data => {
this.itemList = data['itemList'];
});
}
组件代码:
items: any[];
constructor(private dataService :DataService) { }
ngOnInit() {
}
getItems() {
this.dataService.getData().add(data => {
this.items = this.dataService.itemList;
});
}
有没有办法通过重新订阅或类似的方式来做到这一点 ,因为如果你试图在add块中提取数据,那么它就会出现问题
add(data => {
this.items = data['itemList'];
console.log(data);
});
答案 0 :(得分:0)
我要做的是,先简单地传递请求
getData(): Observable<any>{
return this.http.get('items.json);
}
并在组件中处理服务
getItems() {
this.dataService.getData().subscribe(response => {
<do whatever you have to do with response items>
this.dataService.setItemList(response);
});
在dataService:
public setItemList(items: any){
this.itemList = data['itemList']; // or anything you need to do with the original data
}
答案 1 :(得分:0)
您可以do
使用DataService
代替subscribe
。并在控制器中订阅
...
// Service
getData(){
return this.http.get('items.json').do(data => {
this.itemList = data['itemList'];
});
}
...
// Component
getItems() {
this.dataService.getData().subscribe(data => {
this.items = this.dataService.itemList;
});
}