angular - 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)
解决方案
<lib-button onClick = "submitData($event)"></lib-button>
这是纯 HTML+Javascript,与 Angular 无关。这样您就可以使用onclick 事件。单击元素时,window.submitData
将使用window.$event
参数调用函数。如您所见,它使用窗口范围,而在 Angular 中,我们可能希望使用组件的方法。这就是我们使用()
语法的原因,因为编译器会在编译时将作用域绑定到组件作用域。
总而言之,您需要这样做<lib-button (click)= "submitData($event)"></lib-button>
。
推荐阅读
- c# - 处理网站和 cms 身份验证的用户身份
- css - 不透明背景上的 div 问题
- r - RStudio,扩展控制台显示的行数
- python-3.x - 在 Python 中实现大型 mp3 文件的音频播放的最佳方法?
- javascript - django 中使用的 javascript 文件正在加载 html 内容
- ios - “StorageReference”类型的值没有成员“listAll”
- javascript - 如何检查两个对象数组在javascript中是否有任何区别?
- sass - 用于 Sass 的 Gulp + Shopify 主题套件,具有颜色功能
- algorithm - 这种重现的时间复杂度?
- excel - 从 Group By (另一列)返回最大值