如果我点击父母,如何发送真实的孩子?

时间:2017-10-03 09:03:11

标签: angular

  <vpn-services class="vpn-services" [(callSEntry)]="callSEntry"></vpn-services>

在父母身上我有方法:

  callSalesEntry() {
            this.callSEntry = true;
        }

在孩子我有这个:

 ngOnChanges(){
        console.log(this.callSEntry,'aaaa');
}

但它只发射一次。

1 个答案:

答案 0 :(得分:1)

我认为Event emitter可以帮你解决问题

虽然您可以直接在子组件中使用它,但是在这里使用公共服务将是一个很好的做法

首先,您需要在服务中创建类似

的发射器
export class EmitterService {
   public callSEntryEmitter:EventEmitter<boolean>=new EventEmitter(); 

}

然后在root组件中注入服务依赖项并调用change name方法来发出更改

 constructor(private emitter :EmitterService) {}
 callSalesEntry() {
        this.emitter.callSEntryEmitter.emit(true);
    }

最后,子组件订阅了更改

this.emitter.callSEntryEmitter.subscribe(value=>{do something here})

像这样plunker