Tengo en mi componente un EventEmitter
pero no puedo compilarlo porque devuelve el error:
Supplied parameters do not match any signature of call target
Mi componente:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Si elimino uno de los parámetros en this.addModel.emit()
él, funciona, pero entonces: ¿Puedo pasar 2 parámetros a mi eventEmitter
y cómo?
Probé también con:
@Output() addModel = new EventEmitter<any,any>();
pero no funciona.
angular
eventemitter
LorenzoBerti
fuente
fuente
EventEmitter
objeto ..Otra opción para escribirlo fuertemente es la siguiente:
@Output addModel = new EventEmitter<{make: string, name: string}>();
luego puede emitirlo como muestra @ Pankaj-Parkar
this.addModel.emit({make, name});
o
this.addModel.emit({make: 'honda', name: 'civic'});
Ahora tiene una escritura fuerte en lugar de usar
object
oany
.fuente
Lo arreglé haciendo
Entonces pude pasar un objeto como:
Y funcionó.
fuente
publish(event, value)
&subscribe(e, value) {...}
. Estoy un poco sorprendido de que Angular definiera su interfaz / implementara esto de la manera que lo hicieron.new EventEmitter<{name: string, age: number}>();
Sé que esta es una pregunta antigua para mí.Crearía una interfaz y la enviaría como un objeto donde puedo tener mi código más organizado.
y llámalo de la siguiente manera
fuente