Ich habe in meiner Komponente ein EventEmitter
, kann es aber nicht kompilieren, da es den Fehler zurückgibt:
Supplied parameters do not match any signature of call target
Meine Komponente:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Wenn ich einen der darin enthaltenen Parameter lösche this.addModel.emit()
, funktioniert das aber: Kann ich 2 Parameter an meine übergeben eventEmitter
und wie?
Ich habe es auch versucht mit:
@Output() addModel = new EventEmitter<any,any>();
aber es funktioniert nicht.
angular
eventemitter
LorenzoBerti
quelle
quelle
EventEmitter
Eine andere Möglichkeit, es stark zu tippen, ist wie folgt:
@Output addModel = new EventEmitter<{make: string, name: string}>();
Sie können es dann wie @ Pankaj-Parkar-Shows ausgeben
this.addModel.emit({make, name});
oder
this.addModel.emit({make: 'honda', name: 'civic'});
Sie haben jetzt eine starke Eingabe, anstatt
object
oder zu verwendenany
.quelle
Ich habe es behoben, indem ich gemacht habe
Dann konnte ich ein Objekt übergeben wie:
Und es hat funktioniert.
quelle
publish(event, value)
&subscribe(e, value) {...}
. Ich bin ein wenig überrascht, dass Angular ihre Schnittstelle so definiert / implementiert hat, wie sie es getan haben.new EventEmitter<{name: string, age: number}>();
Ich weiß, dass dies eine alte Frage für mich ist. Ich würde eine Schnittstelle erstellen und sie als Objekt senden, in dem ich meinen Code besser organisieren kann
und nenne es wie folgt
quelle