[英]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.