gpt4 book ai didi

javascript - Angular 2 : Event Emitter not working properly

转载 作者:太空宇宙 更新时间:2023-11-04 16:27:37 25 4
gpt4 key购买 nike

我有两个组件。我有一个帮助菜单组件和一个导航组件。当用户单击帮助按钮时,它应该显示帮助菜单。我在应用程序组件中创建了一个名为 help 的变量。在导航组件中,我制作了一个事件发射器来尝试双向绑定(bind),但它在导航组件上不起作用。我有点困惑,因为变量帮助仅在应用程序加载时起作用,但在我单击帮助按钮时不起作用。

应用组件.ts

help:boolean = true;

应用程序组件 html

<!-- app menu div -->
<app-help [(helps)]="help"></app-help>

<!-- app navigation -->
<app-nav [help]="help"></app-nav>

应用程序导航组件 html

<button class="circle" (click)="helpMenu()">H</button>

应用导航组件.ts

export class NavComponent implements OnInit{

@Input() help:boolean;
@Output() HelpsChange: EventEmitter<boolean> = new EventEmitter<boolean>();

constructor(){}

// when user clicks the help button
helpMenu(){
this.help = true;
this.HelpsChange.emit(this.help);
}
}

应用程序帮助组件.html

<div id="helpMenu" *ngIf="help==true">
<p>Help</p>
<button (click)="closeHelp()">Close</button>

应用程序帮助组件.ts

export class HelpComponent implements OnInit {

@Input() help:boolean;
@Output() helpsChange: EventEmitter<boolean> = new EventEmitter<boolean>();

constructor() { }

ngOnInit() {
}

closeHelp(){
this.help = false;
this.helpsChange.emit(this.help);
}

}

最佳答案

不只是改变[(helps)][(help)]就像 Fabio 提到的那样,但您还需要更改指令中变量的名称以删除 s来自helpsChange 。输入和输出遵循命名格式 property/propertyChange 很重要。 ,当你想使用“banana in a box”语法[()]

关于javascript - Angular 2 : Event Emitter not working properly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096250/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com