example - Cómo pasar 2 parámetros a EventEmitter angular2
output angular 6 (4)
Lo arreglé haciendo
EventEmitter<object>();
Luego pude pasar un objeto como:
this.MyOutputVariable.emit({ name: ''jack'', age: ''12'' });
Y funcionó.
Tengo en mi componente un
EventEmitter
pero no puedo compilar porque devuelve este error: "Los parámetros suministrados no coinciden con ninguna firma del objetivo de la llamada"
Mi componente:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Si
this.addModel.emit()
uno de los parámetros en
this.addModel.emit()
funciona, pero, ¿puedo pasar 2 parámetros y cómo, a mi eventEmitter?
Intenté también con:
@Output() addModel = new EventEmitter<any,any>();
pero no funciona
Otra opción para escribirlo con firmeza es la siguiente:
@Output addModel = new EventEmitter<{make: string, name: string}>();
entonces puedes emitirlo como @ Pankaj-Parkar muestra
this.addModel.emit({make, name});
o
this.addModel.emit({make: ''honda'', name: ''civic''});
Ahora tiene una escritura fuerte en lugar de usar
object
o
any
.
Sé que esta es una vieja pregunta para mí, crearía una interfaz y la enviaría como un objeto donde podría tener mi código más organizado
export interface addModelArgs{
make:string,
name:string
}
@Output() addModel = new EventEmitter<addModelArgs>();
y llámalo como sigue
this.addModel.emit({make: ''honda'', name: ''civic''});
or
let savParamters:addModelArgs={make: ''honda'', name: ''civic''};
this.addModel.emit(savParamters);
Si observa el
EventEmitter
API
EventEmitter
, solo puede tomar un solo parámetro de tipo
T
emitir (valor ?: T)
Como solo se permite un único parámetro, considere pasar el parámetro como en el
object
en el método de emisión.
Del mismo modo, en el método a continuación, la variable
make
&
name
tiene sus respectivos valores.
this.addModel.emit({make: make, name: name});
//shorthand is below
this.addModel.emit({make, name});