How pass 2 parameters to EventEmitter in Angular?
If you look at the EventEmitter emit method @ angular.io, it can only take a single parameter of type T
emit(value?: T)
Since only a single parameter is allowed, consider passing it as an object
in emit
method.
In the snippet below, make
& name
variables are holding their respective values:
this.addModel.emit({make: make, name: name});
//shorthand is below
this.addModel.emit({make, name});
Another option to strongly type it is as follows:
@Output addModel = new EventEmitter<{make: string, name: string}>();
you can then emit it like @Pankaj-Parkar shows
this.addModel.emit({make, name});
orthis.addModel.emit({make: 'honda', name: 'civic'});
You now have strong typing instead of using object
or any
.
I fixed it by making
EventEmitter<object>();
Then I was able to pass an object such as:
this.MyOutputVariable.emit({ name: 'jack', age: '12' });
And it worked.