Вы можете обратиться к следующему сообщению для получения решения в jquery как сделать-я-обнаружить-щелкнуть-вне-элемента
, если вы не хотите чтобы использовать jquery, основываясь на приведенном выше посте, вы можете немного изменить свой код.
app.component. html
<button (click)="toggleMenu($event)" class="hamburger">
<span>toggle menu</span>
</button>
<h1>{{name}} Sidebar</h1>
<app-menu [@slideInOut]="menuState" ></app-menu>
AppComponent Класс app.component.ts file
export class AppComponent {
name = "Angular";
ngOnInit() {
window.addEventListener("click", () => {
this.menuState = this.menuState === 'in' ? 'out' : 'out';
});
}
menuState: string = "out";
toggleMenu(event) {
event.stopPropagation();
this.menuState = this.menuState === 'out' ? 'in' : 'out';
}
}
Это должно сработать.