Passando função callback para um componente filho Angular via @Input como no AngularJS
Olá! Estou migrando do AngularJS para o Angular (2+) e não consigo entender como passar corretamente uma função callback para um componente filho. No AngularJS eu fazia assim:
```javascript
// Parent
// Child
scope.$on('save', function(event, data) {
// chama a função do pai
scope.onSave({$event: data});
});
```
Agora no Angular estou tentando passar uma função via @Input:
```typescript
// Parent component
@Component({
template: ` `
})
export class ParentComponent {
saveHandler(data: any) {
console.log('Saved:', data);
}
}
// Child component
@Component({...})
export class ChildComponent {
@Input() onSave: (data: any) => void;
someMethod() {
this.onSave({name: 'test'}); // TypeError: this.onSave is not a function
}
}
```
Mas recebo um erro de que a função não está definida. Li que no Angular é melhor usar @Output e EventEmitter para isso, mas preciso de