单击上一页中的按钮后,如何在路由到该页面后刷新页面

时间:2020-05-02 18:21:03

标签: javascript angular typescript

我有2页,一个主页,第二页。当我单击主页上的按钮时,它会路由到page2。现在单击主页上的按钮后,当我进入第2页时,应该刷新一下,因为我的项目中存在一些缓存问题。我在ngoninit上添加了window.location.reload(),但是这里的页面一直在刷新。 这是下面的代码。

home.component.ts

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
  selector: 'app-home',
  template: '<button (click)="gonextPage()">Go to next page</button>',
  styleUrls: ['./home.component.css']
})

export class HomeComponent implements OnInit {
imageSource :any;
statusdata1: any;
moreThanTen:boolean = false;
showit:boolean = false;
groupList:any = [];

constructor(private router: Router) { }
gonextPage(){
this.router.navigateByUrl('/page2');    
}
  ngOnInit() {
     // window.location.reload();
    /* First data */
    let response = 
    {"vehicle_number":1,"vehicle_name":"car","status":"yellow"}
    let response1 = {"vehicle_number":0,"vehicle_name":"car","status":"yellow"}
    let response2 = {"vehicle_number":2,"vehicle_name":"car","status":"yellow"}
    this.groupList.push(response,response1,response2);
    console.log(this.groupList);




  }

}

page2.component.ts

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
@Component({
  selector: 'app-page2',
  template: '',
  styleUrls: ['./page2.component.css']
})

export class page2Component implements OnInit {
imageSource :any;
statusdata1: any;
moreThanTen:boolean = false;
showit:boolean = false;
groupList:any = [];

constructor(private router: Router) { }

  ngOnInit() {
     window.location.reload();
    /* First data */
    let response = 
    {"vehicle_number":1,"vehicle_name":"car","status":"yellow"}
    let response1 = {"vehicle_number":0,"vehicle_name":"car","status":"yellow"}
    let response2 = {"vehicle_number":2,"vehicle_name":"car","status":"yellow"}
    this.groupList.push(response,response1,response2);
    console.log(this.groupList);




  }

}

2 个答案:

答案 0 :(得分:0)

您不需要手动重新加载。如果路由到特定组件,则始终会得到一个新组件。如果您能进一步说明您的问题,我会为您提供帮助。

答案 1 :(得分:0)

我删除了先前编辑的答案,因为它被欺负了。 唯一的方法是使用即使重新加载js时仍保留的信息(在window.location.reload();上),因为所有其他信息都将丢失。您可以使用localStorage(与localStorage.setItem('firstReload','true');)一起使用。

  ngOnInit() {
    if (!localStorage.getItem('firstReload') || localStorage.getItem('firstReload') == 'true') {
      localStorage.setItem('firstReload', 'false');
      window.location.reload();
    } else {
      localStorage.setItem('firstReload', 'true');
    }
  }

下面是一个可行的修改示例:https://stackblitz.com/edit/angular-correct-routing?file=src%2Fapp%2Fpage.component.ts