J'ai dans mon composant un EventEmitter
mais je ne peux pas le compiler car il renvoie l'erreur:
Supplied parameters do not match any signature of call target
Mon composant:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Si je supprime l'un des paramètres, this.addModel.emit()
cela fonctionne, mais oui: Puis-je passer 2 paramètres à mon eventEmitter
et comment?
J'ai essayé aussi avec:
@Output() addModel = new EventEmitter<any,any>();
mais ça ne marche pas.
angular
eventemitter
LorenzoBerti
la source
la source
EventEmitter
objet ..Une autre option pour le saisir fortement est la suivante:
@Output addModel = new EventEmitter<{make: string, name: string}>();
vous pouvez ensuite l'émettre comme les spectacles @ Pankaj-Parkar
this.addModel.emit({make, name});
ou
this.addModel.emit({make: 'honda', name: 'civic'});
Vous avez maintenant une frappe forte au lieu d'utiliser
object
ouany
.la source
Je l'ai réparé en faisant
Ensuite, j'ai pu passer un objet tel que:
Et ça a marché.
la source
publish(event, value)
&subscribe(e, value) {...}
. Je suis un peu surpris qu'Angular ait défini son interface / mis en œuvre comme il l'a fait.new EventEmitter<{name: string, age: number}>();
Je sais que c'est une vieille question pour moi, je créerais une interface et je l'enverrais en tant qu'objet où je pourrais avoir mon code plus organisé
et appelez-le comme suit
la source