[英]Ember trigger action between child components
在我的Ember應用程序中,我有一個父組件“ A”,其中有兩個子組件“ B”和“ C”
我的問題是:
如何觸發從組件B到組件C的動作(即在2個子組件之間進行通信)?
只是添加,從B到C的this.sendAction
不起作用
你不知道 就這么簡單。 但是,還有其他方法可以實現相同的目標。
基本模式應為:
B
觸發對組件A
的操作。 A
更改了綁定到組件C
。 C
知道該操作已發生。 那就是一般的余燼流程: DDAU (數據減少,動作增加)。
如果你想要一些封裝可以使用上下文組件,組件組 B
和C
在一起,給他們一個共享的狀態。
一個簡短的例子:
{{component-b onsomething=(action 'myAction')}}
{{component-c state=state}}
現在在component-b
內部,您可以執行get(this, 'myAction')('newState')
。 在組件A
(父組件)中,您具有操作myAction
:
myAction(newState) {
set(this, 'state', newState);
}
在component-c
內部,您可以例如根據狀態使用計算屬性來計算:
shouldDisplaySomeButton: computed('state', {
get() {
return get(this, 'state') === 'newState';
}
}),
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.