我的代码包含 2 个组件:父级:
openLibraryMenu() {
this.libraryMenuOpen = true;
}
<section>
Hello Test
<button (click)="openLibraryMenu()">parentButton</button>
</section>
<app-library-section [libraryMenuOpen]="libraryMenuOpen" (hamburgerChecked)='libraryMenuClose($event)'>
</app-library-section>
子组件:
@Input() libraryMenuOpen: boolean = false;
@Output() hamburgerChecked = new EventEmitter<boolean>();
minimizeMenu() {
this.libraryMenuOpen = false;
this.hamburgerChecked.emit(this.libraryMenuOpen);
}
<nav class="libraryMenuNav" *ngIf="libraryMenuOpen">
Body to be rendered
<button (click)="minimizeMenu()">childButton</button>
</nav>
当单击 parentButton 时,libraryMenuOpen 返回 true 并在 child 中打开块。在 child 中,当单击 childButton 时,它返回 false 并关闭块。但是,当我再次单击 parentButton 时,它在父组件中返回 true 但不会打开子块。我想保持简单,这就是为什么我不发布所有代码。谁能帮我这个。提前致谢。如果需要更多数据,请告诉我。
尝试仅在根组件中使用一个标志来显示或隐藏子组件。您的子组件只发出 close 事件,而您的根组件只更新标志。
<app-library-section *ngIf="libraryMenuOpen" (hamburgerChecked)="libraryMenuOpen = false">
</app-library-section>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句