Pasar una función callback a un componente hijo en Angular mediante @Input como en AngularJS
¡Hola! Estoy migrando de AngularJS a Angular (2+) y no logro entender cómo pasar correctamente una función callback a un componente hijo. En AngularJS lo hacía así:
```javascript
// Parent
// Child
scope.$on('save', function(event, data) {
// llamamos a la función del padre
scope.onSave({$event: data});
});
```
Ahora en Angular intento pasar una función mediante @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
}
}
```
Pero obtengo un error de que la función no está definida. He leído que en Angular es mejor usar @Output y EventEmitter para esto, pero necesito usar