我有一个父级和子级组件,我希望父级能够在子级中触发一个函数,同时还允许子级在父级中触发一个函数。这是我为孩子触发在父母中触发功能的工作:
儿童
@Output() callParentFunction = new EventEmitter<any>();
...
this.callParentFunction.emit();
父母
template: `
<child-component
(callParentFunction)="parentfunction($event)"
>
</child-component>
`
这可以触发parentfunction
,但是我如何朝另一个方向前进?我需要一个由父级事件发射器触发的子级函数。
我发现Angular Event Service可以正常工作。
尝试这样
父母
template: `
<child-component
[events]="eventsSubject.asObservable()"
>
</child-component>
`
private eventsSubject: Subject<void> = new Subject<void>();
anyfunction(){
this.eventsSubject.next()
}
子
@Input() events: Observable<void>;
ngOnInit() {
this.events.subscribe(() =>
//do something
);
}