我在我的组件中有 EventEmitter
但我无法编译因为返回此错误:"Supplied parameters do not match any signature of call target"
我的组件:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
如果我删除了 this.addModel.emit()
中的一个参数,它可以工作,但是,我可以将2个参数传递给我的eventEmitter吗?
我也尝试过:
@Output() addModel = new EventEmitter<any,any>();
但它不起作用
3 回答
强类型的另一种选择如下:
@Output addModel = new EventEmitter<{make: string, name: string}>();
你可以像@ Pankaj-Parkar节目一样发出它
this.addModel.emit({make, name});
要么
this.addModel.emit({make: 'honda', name: 'civic'});
您现在拥有强大的输入,而不是使用
object
或any
.如果您查看
EventEmitter
API的emit
方法,它只能采用T
类型的单个参数由于只允许单个参数,因此请考虑在emit方法中传递
object
中的参数 . 同样在下面的方法make
&name
变量保持其各自的值 .我通过制作来修复它
然后我能够传递一个对象,例如:
它奏效了 .