gpt4 book ai didi

Angular 4 事件发射器不发射

转载 作者:行者123 更新时间:2023-12-02 14:12:21 24 4
gpt4 key购买 nike

所以我有一个事件发射器工作得很好。在我的 child 中,我调用一个函数:

(click)="EnterEditMode()

触发:

EnterEditMode(){ 
this.enterEdit.emit(null);
}

在我的 parent 身上,我:

  enterEdit(){
console.log("got some text");
}

这可以完美地工作。但现在我想在它旁边添加第二个输出。所以在 child 中,我称:

SaveChanges();

这会触发一个函数:

SaveChanges() {
this.saveChanges.emit(null);
console.log("save");
}

当我调用它时,会触发控制台日志,但不会触发发出。我的 parent 有一个函数,因此从未被调用。

saveChanges() {
console.log("saving changes");
this.editing ? this.editing = false : this.editing = true;
}

我真的看不出我做错了什么,并尝试排除故障,但我没有收到任何错误,只是控制台日志显示“SaveChanges()”已被调用。我是否遗漏了有关发射器的信息?

编辑以显示我的事件发射器

在我的子组件中:

@Output() enterEdit = new EventEmitter<any>();
@Output() saveChanges = new EventEmitter<any>();

同样,enterEdit 有效,但 saveChanges 无效...

最佳答案

就我的具体情况而言,我在没有警告或消息的情况下遇到了此问题。

我的误解如下:

<app-child [someObject]="currentObject" (emitEventFunction)="saveChange($event)">

在我的模板标记中,我放置了发出事件的函数的名称 emitEventFunction() ,而不是放置我用 @Output() 声明的对象装饰师。这意味着当我试图获取函数 emitEventFunction() 时每当saveChange()时调用函数在我的子组件中被调用,Angular 实际上正在寻找一个名为 emitEventFunction 的对象.

解决方案自然是找到我声明为输出的内容:

@Output() entryChange = new EventEmitter<any>();

并使用它:

<app-child [someObject]="currentObject" (entryChange )="saveChange($event)">

关于Angular 4 事件发射器不发射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47685177/

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