首页 > 解决方案 > Angular:事件发射器不发射任何值

问题描述

我正在尝试从事件发射器发出值,但它不起作用。我已经尝试了每一件事,但仍然出现错误。

这是代码:

button.component.html

<button (click) = "buttonClicked($event)"></button>

button.component.ts

@Output() onClick: EventEmitter<any> = new EventEmitter();

buttonClicked(event: any)
{
 this.onClick.emit(event);
}

app.component.html

<lib-button onClick = "submitData($event)"></lib-button>

app.component.ts

submitData(value: any)
{
 // console.log(value);
 console.log("Button has been clicked. Calling it in app component");
}

我正进入(状态Uncaught ReferenceError: submitData is not defined at HTMLElement.onclick ((index):14)

标签: angular

解决方案


<lib-button onClick = "submitData($event)"></lib-button>

这是纯 HTML+Javascript,与 Angular 无关。这样您就可以使用onclick 事件。单击元素时,window.submitData将使用window.$event参数调用函数。如您所见,它使用窗口范围,而在 Angular 中,我们可能希望使用组件的方法。这就是我们使用()语法的原因,因为编译器会在编译时将作用域绑定到组件作用域。

总而言之,您需要这样做<lib-button (click)= "submitData($event)"></lib-button>


推荐阅读