我正在尝试通过事件发射器将一个孩子的图像src发送给父母,我知道了,但是 立即将字符串替换为mouseEvent对象。 为什么会发生这种情况,我该怎么做才能阻止这种情况发生? 谢谢!
Angular 5
html-parent:
<!-- 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-child:
<!-- 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对象替换它。
答案 0 :(得分:0)
click已经是定义好的角度输出,您应该将EventEmitter的名称更改为其他名称。
@Output() imageClick: EventEmitter<string> = new EventEmitter<string>();
viewImage(){
this.imageClick.emit("../../assets/imgs/journey.png");
}