在API调用期间不重新加载页面就看不到数据

时间:2019-07-09 12:14:04

标签: angular typescript

登录后,页面路由将导航到“仪表板”,其中http:get api调用正在从服务器获取数据。但是,如果不重新加载页面,则不会显示任何数据。我已经搜索了许多解决该问题的方法,但是没有什么可以解决我的问题。任何人都可以帮助我在这里错过的事情,或者无需重新加载页面就可以获取数据吗?

N:B:我使用Angular 7作为前端。

1 个答案:

答案 0 :(得分:0)

您有两种选择来解决此问题

  1. 使用父页面上的本地存储。

  2. 在子页面上使用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)
    });