Я определяю маршрут '' для HomeComponent, на html-странице компонента есть ссылка для входа в систему, после login (), URL-адрес не изменяется, а конструктор и ngOnInit не вызываются, поэтому {{currentSubject ?. name}} пусто, тогда, если я нажму F5, чтобы обновить страницу, будет вызван ngOnInit, и {{currentSubject? .name}} будет показано на странице.
У меня такой вопрос: как я могу позвонить ngOnInit, чтобы сделать currentSubject.name показанным на странице после входа в систему?
HTML-страница, как показано ниже:
<div [ngSwitch]="isAuthenticated()">
<div *ngSwitchCase="false" class="row">
<div class="col-md-3">
<span class="hipster img-fluid rounded"></span>
</div>
<div class="col-md-9">
<div class="alert alert-warning">
<span>existing account, please </span>
<Button class="btn btn-primary" (click)="login()" jhiTranslate="global.messages.info.authenticated.link">login</Button>
</div>
</div>
</div>
<div *ngSwitchCase="true">
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav mr-auto">
<li ngbDropdown class="nav-item dropdown">
<a class="nav-link dropdown-toggle" ngbDropdownToggle href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{currentSubject?.name}}
</a>
<div *ngIf="currentSubject" ngbDropdownMenu class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" *ngFor="let subject of subjects" href="#">{{subject.name}}</a>
</div>
</li>
</ul>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Link 1#</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Link 2#</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
ngOnInit () выглядит следующим образом:
ngOnInit() {
this.principal.identity().then((account) => {
this.account = account;
});
this.registerAuthenticationSuccess();
this.profileService.getProfileInfo().then((profileInfo) => {
this.swaggerEnabled = profileInfo.swaggerEnabled;
});
this.subjectService.query({
page: 0,
size: this.itemsPerPage,
sort: ['id', 'asc']
}).subscribe(
(res: ResponseWrapper) => this.onSuccess(res.json, res.headers),
(res: ResponseWrapper) => this.onError(res.json)
);
}
Субъекты и currentSubject будут заполняться функцией onSuccess, которую я здесь пропускаю.