Ioni c 5: Как обновить sh текущую страницу - PullRequest
0 голосов
/ 09 июля 2020

Мне нужно обновить sh домашнюю страницу после успешной аутентификации при входе. Здесь я использую приведенный ниже код для перехода на следующую страницу после успешного входа в систему и использую Firebase для серверной части.

this.router.navigate(['home']);

Это просто открытие домашней страницы без обновления. добро пожаловать, если кто-нибудь может дать мне решение.

1 Ответ

0 голосов
/ 10 июля 2020

Вы можете использовать BehaviorSubject . Таким образом, вы сможете получить эту информацию в любом компоненте без необходимости обновлять sh всю страницу / экран.

1.) Создать службу. Например, data.service.ts

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';

@Injectable()
export class DataService {

  private messageSource = new BehaviorSubject('');
  currentMessage = this.messageSource.asObservable();

  constructor() { }

  changeMessage(message: string) {
    this.messageSource.next(message)
  }

}

1.1.) Импортируйте эту службу внутри app.module.ts

import { DataService } from './services/data.service';

providers: [
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
    ...
    DataService
  ],

2 .) На странице входа в систему login.page.ts укажите имя пользователя

import { DataService } from '../services/data.service';

let username: string;

constructor(private _dataService: DataService) {...

this._dataService.changeMessage(this.username);

3.) На вашей домашней странице home.page.ts , вы получите доступ к этой информации

import { DataService } from '../services/data.service';

let username: string;

constructor(private _dataService: DataService) {...

this._dataService.currentMessage.subscribe((message) => {
     if(message){
        this.username = message;
     }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...