Mam w swoim komponencie, EventEmitter
ale nie mogę go skompilować, ponieważ zwraca błąd:
Supplied parameters do not match any signature of call target
Mój komponent:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Jeśli usunę jeden z parametrów, this.addModel.emit()
to działa, ale tak: Czy mogę przekazać 2 parametry do mojego eventEmitter
i jak?
Próbowałem też z:
@Output() addModel = new EventEmitter<any,any>();
ale to nie działa.
angular
eventemitter
LorenzoBerti
źródło
źródło
EventEmitter
obiektu ..Inna opcja silnego wpisania jest następująca:
@Output addModel = new EventEmitter<{make: string, name: string}>();
możesz go następnie emitować jak pokazy @ Pankaj-Parkar
this.addModel.emit({make, name});
lub
this.addModel.emit({make: 'honda', name: 'civic'});
Masz teraz mocne wpisywanie zamiast używania
object
lubany
.źródło
Naprawiłem to, robiąc
Wtedy udało mi się przekazać obiekt taki jak:
I zadziałało.
źródło
publish(event, value)
&subscribe(e, value) {...}
. Jestem trochę zaskoczony, że Angular zdefiniował ich interfejs / zaimplementował w ten sposób.new EventEmitter<{name: string, age: number}>();
Wiem, że to dla mnie stare pytanie Utworzyłbym interfejs i wysłał go jako obiekt, w którym mógłbym lepiej zorganizować swój kod
i nazwij to następująco
źródło