В моем приложении Angular есть следующий сценарий:
Компонент MainDashboardComponent
, который отображается, когда у меня есть маршрут /
.Очевидно, в моем файле app.component.html
есть тег <router-outlet>
, который выглядит следующим образом:
<app-side-menu></app-side-menu>
<div class="main-container">
<div class="content">
<router-outlet></router-outlet>
</div>
</div>
Как вы можете видеть, у меня есть SideMenuComponent
, который я использую, чтобы иметь боковое меню на всех моих маршрутах.,В MainDashboardComponent
у меня есть метод, который по какой-то причине должен переключать элемент чата, который находится в боковом меню.Внутри SideMenuComponent
у меня есть метод, который обрабатывает переключатель видимости для элемента чата, и он работает как положено.Как я могу вызвать этот метод из моего MainDashboardComponent
и переключить оттуда элемент чата?
Что я пытался безуспешно
Я пытался ввести SideMenuComponent
внутри моего MainDashboardComponent
, но, хотя метод toggleChat()
вызывается, элемент не меняет свою видимость.Похоже, у меня есть несколько экземпляров одного и того же компонента, я думаю ...
Не могли бы вы помочь мне с этим?Спасибо!
Компонент MainDashboard
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-main-dashboard',
templateUrl: './main-dashboard.component.html',
styleUrls: ['./main-dashboard.component.scss']
})
export class MainDashboardComponent implements OnInit {
constructor() { }
ngOnInit() {}
setFocus(id) {
// here I'd like to call SideMenuComponent togglechat() ...
}
}
SideMenuComponent
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'app-side-menu',
templateUrl: './side-menu.component.html',
styleUrls: ['./side-menu.component.scss']
})
export class SideMenuComponent implements OnInit {
showChat: boolean;
constructor() {
this.showChat = false;
}
ngOnInit() {
}
toggleChat() {
this.showChat = !this.showChat;
}
}