Angular 2 Перезагрузите окно, затем перейдите на другую страницу - PullRequest
0 голосов
/ 23 апреля 2020

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

Ответы [ 2 ]

0 голосов
/ 23 апреля 2020

@ BrianM, есть подход, который использует тему и подписывается в вашем домашнем компоненте.

Представьте, что у вас есть услуга

@Injectable({
  providedIn: 'root',
})
export class MyService {
  private subject = new Subject<any>();
  public observable=this.subject.asObservable();
  changeData(data:any)
  {
     this.subject.next(data)
  }
}

В ngOnInit of home вы подписываетесь

constructor(private service:MyService){}
ngOnInit()
{
    this.service.observable.subscribe(res=>{
        ..make something with the data...
    })
}

Когда вы изменяете учетную запись в компоненте, который внедряет в конструктор службу, вам нужно только сделать

   service.changeData(data);
0 голосов
/ 23 апреля 2020

Вы можете обновить sh страницу с помощью

window.location.href="here your path"

. Она будет перемещаться по странице обновления, но она очищает сессию, поэтому вы можете попробовать фиктивный параметр, чтобы обновить sh it

this.router.navigate(["/same/route/path?refresh=1"]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...