angular - 如何使用事件发射器触发子组件和父组件中的函数?

标签 angular typescript components eventemitter

我有一个父组件和子组件,我希望父组件能够触发子组件中的函数,同时也允许子组件触发父组件中的函数。这是我为子级触发父级中的函数所做的事情:

child

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

父级

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

这可以触发parentfunction,但我该如何朝另一个方向走呢?我需要使用父级的事件发射器来触发子函数。

最佳答案

尝试这样

父级

template: `
    <child-component
      [events]="eventsSubject.asObservable()"
    >
    </child-component>
  `
private eventsSubject: Subject<void> = new Subject<void>();
anyfunction(){  
    this.eventsSubject.next()
 }

child

@Input() events: Observable<void>;
ngOnInit() {        
  this.events.subscribe(() => 
  //do something
 );   
}

关于angular - 如何使用事件发射器触发子组件和父组件中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59312138/

相关文章:

html - css:绝对定位的div在父级中的大小错误

javascript - Typescript 中这两个数组赋值有什么区别?

java - 按名称获取组件不支持所有操作?

html - 没有 ngmodel 指令 Angular 两种方式数据绑定(bind)

angular - 组件调用多个API时只调用一次拦截器

javascript - ng-class 不工作

TypeScript 类泛型参数约束

delphi - 为什么我在 IDE 中得到了另一个尺寸的组件?

javascript - 父数据未在 vue.js 组件中定义

angular - 相对路径不适用于 Angular 6 中的 routerLink