如何在Angular中调用父类中的子方法?

时间:2018-01-29 14:26:19

标签: angular angular-components

我的父类代码:

import { Child } from './child';

class Parent{
     // onGateOpen(para1); how to access it here ? 
}

我的子类代码位于名为child.ts的单独文件中:

class Child extends parent{
   onGateOpen(para1){
        // some code for opening the gate is here.
   }
}

感谢。

1 个答案:

答案 0 :(得分:0)

有几种方法,您可以通过服务绑定它,或者直接在子组件上将该方法作为输出公开,或者可以在父组件上获取子组件的引用,然后从子实例调用该方法,或者有一个观察者从父母传给孩子,孩子听。这是第一个例子:

class ChildComponent {
  constructor(private gateService: GateService) {}
  ngOnInit() {
    this.gateService.openGate$.subscribe((params: any) => this.onGateOpen(params));
  }
  private onGateOpen(params) {
  }
}


class ParentComponent {
  constructor(private gateService: GateService) {}
  openGate() {
    this.gateService.openGate('some param');
  }
}

class GateService {
  openGate$: Subject<string> = new Subject();
  openGate(param) {
    this.openGate$.next(param);
  }
}

详细了解here