javascript - Angular:来自未定义子项的数据
问题描述
简单的问题:我想在单击按钮时将数据从子项传递给其父项,但父项中的数据始终未定义。我看过:Angular 的文档和大量的帖子已经解决了这个问题,但我仍然坚持它所以..
子组件 ( <left-panel>
) 有一个带有(click)="handleAddTea()"
事件处理程序的按钮。当单击按钮时emit()
,事件会根据需要通过EventEmitter
具有@Output
装饰器的事件。
我将它绑定EventEmitter
到父模板中的处理程序,并在数据前面带有 $ 符号,如记录:(addTeaEvent)="handleAddTeaEvent($data)"
但是当handleAddTeaEvent
函数触发数据时undefined
这是子组件中的相关代码:
@Output()
addTeaEvent: EventEmitter<any> = new EventEmitter<any>();
handleAddTea() {
console.log('Add Tea Clicked sending to parent..');
this.addTeaEvent.emit(this.mainTitle)
}
<button class="btn flex__item--middle btn--large btn--call-to-action" (click)="handleAddTea()">
{{addBtnText}}
</button>
这是父组件中的相关代码:
handleAddTeaEvent(stuff: any) {
console.log('from parent', stuff);
}
<left-panel mainTitle="Add a tea" addBtnText="Add tea" (addTeaEvent)="handleAddTeaEvent($data)"></left-panel>
为什么它是未定义的?
解决方案
您需要在事件监听器中使用$event
而不是:$data
<left-panel mainTitle="Add a tea" addBtnText="Add tea" (addTeaEvent)="handleAddTeaEvent($event)"></left-panel>
推荐阅读
- python - 如何使用 python 在我的 github 帐户上创建远程 git 存储库或使用 python 将本地 git repo 推送到我的 github 帐户?
- python - 将 N 个不同的向量排列到一个对象数组中 - 不是矩阵
- r - R闪亮:plotly_build中的错误:缺少参数“p”,没有默认值
- swift - 将标签的文本设置为 nil 或将其设置为“”有什么区别?
- ruby-on-rails - 未定义的方法“登录”#
- c# - 仅知道 PropertyInfo 从 Enum 获取属性
- c++ - C++ WinSock2 等到客户端发送数据
- python - 如何在windows上构建tensorflow自定义操作
- r - 有没有一种快速的方法可以将字符串中的罗马数字转换为 R 中的阿拉伯语?
- r - 如何纠正 ICdiffupperwidesIII 分析中缺失值 TRUE/FALSE 的错误