繁体   English   中英

尝试通过 OUTPUT 发出 INPUT 值,但它不会更改标志 state

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM