我如何使用事件发射器在子组件和父组件中触发功能?

问题描述 投票:0回答:2

我有一个父级和子级组件,我希望父级能够在子级中触发一个函数,同时还允许子级在父级中触发一个函数。这是我为孩子触发在父母中触发功能的工作:

儿童

@Output() callParentFunction = new EventEmitter<any>();
...
this.callParentFunction.emit();

父母

  template: `
    <child-component
      (callParentFunction)="parentfunction($event)"
    >
    </child-component>
  `

这可以触发parentfunction,但是我如何朝另一个方向前进?我需要一个由父级事件发射器触发的子级函数。

angular typescript components eventemitter
2个回答
0
投票

我发现Angular Event Service可以正常工作。

https://dev.to/jwp/the-angular-event-service-ech


0
投票

尝试这样

父母

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
 );   
}
© www.soinside.com 2019 - 2024. All rights reserved.