У меня есть два метода в родительском компоненте:
public isOpen(index: number): boolean {
const block = this.dropDownBlocks.find(b => b.index === index);
return block.open;
}
public openDropDown(index: number) {
const block = this.dropDownBlocks.find(b => b.index === index);
const i = this.dropDownBlocks.indexOf(block);
this.dropDownBlocks[i].open = !block.open;
}
Независимо от того, что делать.
В дочернем компоненте я определил:
@Output() openTab = new EventEmitter<number>();
@Output() opened = new EventEmitter<number>();
И ниже вДочерний компонент, который я написал:
public openDropDown(index: number) {
this.openTab.emit(index);
}
public isOpen(index: number) {
return this.opened.emit(index);
}
Дочерний шаблон:
<div class="header" (click)="openDropDown(2)"></div>
<div class="body" [hidden]="!isOpen(2)">
Это означает, что я вызываю дочерний метод и передаю инициативу родительскому методу с тем же именем:
public openDropDown(index: number) {
this.openTab.emit(index);
}
Итак, дочерний компонент включается в родительский элемент следующим образом:
<app-missed-plan (openTab)="openDropDown($event)" (opened)="isOpen($event)"></app-missed-plan>
Проблема в isOpen()
не работает и не возвращает значение