تمرير دالة رد الاتصال إلى المكون الفرعي في Angular عبر @Input كما في AngularJS
مرحبًا! أنا أنتقل من AngularJS إلى Angular (2+) ولا أستطيع فهم كيفية تمرير دالة رد الاتصال بشكل صحيح إلى المكون الفرعي. في 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 لهذا، لكني أحتاج إلى