Avatar ·

将回调函数通过 @Input 从 Angular 父组件传递到子组件,如同在 AngularJS 中一样

你好!我正在从 AngularJS 迁移到 Angular (2+),但无法理解如何正确地将 callback 函数传递给子组件。在 AngularJS 中,我是这样做的: ```javascript // Parent // Child scope.$on('save', function(event, data) { // 调用父函数 scope.onSave({$event: data}); }); ``` 现在在 Angular 中,我尝试通过 @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 } } ``` 但我收到错误,提示函数未定义。我读到在 Angular 中最好使用 @Output 和 EventEmitter,但我需要它