Как обновить sh страницу после перенаправления на эту страницу нажатием кнопки с предыдущей страницы - PullRequest
0 голосов
/ 02 мая 2020

У меня есть 2 страницы, один дом и страница2. когда я нажимаю кнопку на домашней странице, она направляется на страницу 2. Теперь, после нажатия кнопки «home», когда я захожу на страницу 2, она должна быть refre sh, поскольку в моем проекте есть проблема с кэшем. Я добавил window.location.reload () в ngoninit, но здесь моя страница постоянно обновляется. Вот код ниже.

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 голосов
/ 04 мая 2020

Я удаляю предыдущий отредактированный ответ, потому что над ним издеваются. Единственный способ - использовать информацию, которая сохраняется даже при перезагрузке 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

0 голосов
/ 02 мая 2020

Вам не нужно перезагружать вручную. Если вы направите к указанному c компоненту, вы всегда получите новый компонент. Если вы можете объяснить больше о вашей проблеме, я могу помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...