Не могу поменять отображаемый компонент - Angular
С помощью ngSwitch пытаюсь менять отображаемый компонент:
<div [ngSwitch]="currentPage">
<div *ngSwitchCase="'login'">
<app-login [changePage]="changePage"></app-login>
</div>
<div *ngSwitchCase="'registration'">
<app-registration></app-registration>
</div>
<div *ngSwitchDefault>
<app-default [changePage]="changePage"></app-default>
</div>
ChangePage - метод, который должен менять currentPage:
export class IdentificationWindowModalComponent implements OnInit {
public currentPage: string;
constructor(@Inject(MAT_DIALOG_DATA) public data: string) {
this.currentPage = data;
}
ngOnInit(): void { }
public changePage(path: string): void {
this.currentPage = path;
}
}
Data в конструтор и Path в changePage приходят корректные.
Я также пытался менять таким способом, но это не дало никаких положительных результатов:
this.currentPage = 'login';
В качесте тестирования я также пытался менять currentPage в конструкторе через некоторый промежуток времени(n-ое количество секунд) - это работает, отображаемый компонент меняется, но сделать это через функцию changePage у меня не получилось.
В чем может быть проблема? Что я делаю не так?
Ответы (1 шт):
Автор решения: Yaroslav.Production
→ Ссылка
Решил проблему, добавив к вызову передачу контекста:
<app-default [changePage]="changePage.bind(this)"></app-default>