登录后,页面路由将导航到“仪表板”,其中http:get api调用正在从服务器获取数据。但是,如果不重新加载页面,则不会显示任何数据。我已经搜索了许多解决该问题的方法,但是没有什么可以解决我的问题。任何人都可以帮助我在这里错过的事情,或者无需重新加载页面就可以获取数据吗?
N:B:我使用Angular 7作为前端。
答案 0 :(得分:0)
您有两种选择来解决此问题
使用父页面上的本地存储。
在子页面上使用API调用, 并且仅订阅有用的数据。
我更喜欢第二种方法,因为它非常有效,
步骤:
1。从父页面到子页面,您需要传递data.id或object.id
2.call子页面上的API,并使用来自父页面的传递的data.id过滤数据
因此,如果您重新加载子页面,则子页面会再次点击API,并从URL中获取数据和ID,以帮助过滤必要的数据
//parent page
//onclick parent page navigate to child page
//data contain id,title,info etc....
passData(data){
this.newsService.blogData = data;
this.router.navigate(['/child-page',data.id]);
}
//api service
export class NewsService {
public blogData:any[]=[]; //array declare
constructor ( private http: HttpClient){ }
fetchNews(): Observable<Object> {
return this.http.get('api-url');
}
// on child page
fetchNews(){
this.newsservie.fetchNews().subscribe((data:any)=>{
this.newsList = data;
this.readmorecontent = this.newsList[this.id];
console.log(this.readmorecontent)
});