example angular eventemitter

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});