繁体   English   中英

子组件之间的灰烬触发动作

[英]Ember trigger action between child components

在我的Ember应用程序中,我有一个父组件“ A”,其中有两个子组件“ B”和“ C”
我的问题是:
如何触发从组件B到组件C的动作(即在2个子组件之间进行通信)?

只是添加,从B到C的this.sendAction不起作用

你不知道 就这么简单。 但是,还有其他方法可以实现相同的目标。

基本模式应为:

  1. 组件B触发对组件A的操作。
  2. 组件A更改了绑定到组件C
  3. 现在组件C知道该操作已发生。

那就是一般的余烬流程: DDAU (数据减少,动作增加)。

如果你想要一些封装可以使用上下文组件,组件 BC在一起,给他们一个共享的状态。


一个简短的例子:

{{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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM