Eu tenho um em meu componente, EventEmitter
mas não consigo compilá-lo porque ele gera o erro:
Os parâmetros fornecidos não correspondem a nenhuma assinatura do alvo da chamada
Meu componente:
@Output() addModel = new EventEmitter<any>();
saveModel($event, make, name) {
this.addModel.emit(make, name);
}
Se eu excluir um dos parâmetros this.addModel.emit()
funciona, mas é possível passar 2 parâmetros para EventEmitter
e como?
angular
eventemitter
LorenzoBerti
fonte
fonte
EventEmitter
objeto ..Outra opção para digitar fortemente é a seguinte:
@Output addModel = new EventEmitter<{make: string, name: string}>();
você pode então emiti-lo como mostra @Pankaj-Parkar
this.addModel.emit({make, name});
ou
this.addModel.emit({make: 'honda', name: 'civic'});
Agora você tem uma digitação forte em vez de usar
object
ouany
.fonte
Eu consertei fazendo
Então, consegui passar um objeto como:
E funcionou.
fonte
publish(event, value)
&subscribe(e, value) {...}
. Estou um pouco surpreso que o Angular definiu sua interface / implementou isso da maneira que fizeram.new EventEmitter<{name: string, age: number}>();
Eu sei que esta é uma pergunta antiga para mim, eu criaria uma interface e a enviaria como um objeto onde posso ter meu código mais organizado
e chamá-lo da seguinte forma
fonte