[英]tried to emit the INPUT value through OUTPUT but, it doesn't change the flag state
我的代码分为 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,但不会打开子块。 我想保持简单,这就是我不发布所有代码的原因。 谁能帮我这个。 提前致谢。 如果需要更多数据,请告诉我。
尝试在根组件中仅使用一个标志来显示或隐藏子组件。 您的子组件仅发出关闭事件,而您的根组件仅更新标志。
<app-library-section *ngIf="libraryMenuOpen" (hamburgerChecked)="libraryMenuOpen = false">
</app-library-section>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.