2016-09-28 73 views
0

两个组件之间的通讯,我有两个组成部分:AppCompSimulationCompAngular2与EventEmitter

AppComp包含一个函数:

generateEmptyPromise() { 
    return Promise.resolved('') 
} 

,并具有以下HTML:

<simulation-comp (simu)='generateEmptyPromise()'></simulation-comp> 

模拟补偿手柄(simu)是这样的:

@Output() simu = new EventEmitter() 
private eventHandled: boolean = false 

// Triggered when a button of the component is pressed 
whenClicked() { 
    this.simu.subscribe(() => { 
    this.eventHandled= true 
    }) 
    this.simu.emit() 
} 

我希望eventHandled成为真正的基础上generateEmptyPromise给出的承诺(所以在发射后已处理)。然而,它不工作atm,我怎么能适应我的代码有这种行为?也许它不应该像这样工作,我在这里完全错了。

+0

的可能的复制[我可以emmit事件从父母到孩子angular2] (http://stackoverflow.com/questions/39738974/can-i-emmit-the-event-f ROM的家长对儿童在-angular2) – ranakrunal9

回答

0

@Output用于将组件的“外部”值发送回父级。孩子 - >父母。

对于父 - >子通信,其中父模板由子想与您通信需要@Input,所以孩子知道父母会在某个时间点发送这些值。

所以开始你可能想appCmp

<simulation-comp [myinput]='generateEmptyPromise()'></simulation-comp>

SimulationCmp.ts

@Input myinput : any //Whatever value type you expect it to be