angular - 为什么事件的String参数被mouseEvent替换了?
问题描述
我正在尝试通过事件发射器将图像 src 从孩子发送到父母,我得到了它,但该字符串立即被 mouseEvent 对象替换。为什么会发生这种情况,我能做些什么来阻止这种情况发生?谢谢!
角 5
html-父:
<!-- language: HTML -->
<vcard-event name="Expo" place="Hotel California"
(click)='viewImage($event);$event.preventDefault();
$event.stopPropagation();'></vcard-event>
ts-parent:
<!-- language: TypeScript -->
viewImage(src: String){
this.srcImage = src;
this.isOpen = !this.isOpen;
console.log("SRC: ",this.srcImage);
}
它返回:
SRC:../../assets/imgs/journey.png
但后来我得到:
$event.preventDefault 不是函数...
最后:
SRC:MouseEvent{isTrusted...} event.prevent... 不是函数
如果我删除 ";$event.preventDefault(); $event.stopPropagation();",它就不会发生,
但其他两条线仍然存在。
html-孩子:
<!-- language: HTML -->
<button class="bigButton" (click)="viewImage()"> View Image</button>
ts-孩子:
<!-- language: TypeScript -->
@Output() click: EventEmitter<string> = new EventEmitter<string>();
viewImage(){
this.click.emit("../../assets/imgs/journey.png");
}
它应该显示:
SRC:../../assets/imgs/journey.png
并停在那里,而不是用 MouseEvent 对象替换它。
解决方案
click 已经是角度定义的输出,您应该将 EventEmitter 的名称更改为不同的名称。
@Output() imageClick: EventEmitter<string> = new EventEmitter<string>();
viewImage(){
this.imageClick.emit("../../assets/imgs/journey.png");
}
推荐阅读
- javascript - 如何根据 Jquery Datatables 中的条件隐藏列?
- c# - StockFish Chess Engine 无法在 Android 设备上运行,但可以在独立构建和 Unity 编辑器上完美运行
- python-3.x - 从 Python 运行时获取 bat 文件的错误级别
- python - Pandas 透视列和行帮助
- python - Python写错行
- javascript - 无法使用对函数的调用方法创建对象。如何使用调用方法创建对象?
- javascript - 在通过给定数组映射时创建具有唯一键的新数组
- python - 我使用 API 的 Google Analytics 获取视图
- llvm - 如何构建一个空的基本块并在前面插入一条指令?
- react-native - 如何更新上一个屏幕中的平面列表项目并从当前下一个屏幕更新?