Javascript 子组件之间的余烬触发操作

Javascript 子组件之间的余烬触发操作,javascript,jquery,ember.js,Javascript,Jquery,Ember.js,在我的Ember应用程序中,我有一个父组件“a”,它有两个子组件“B”和“C” 我的问题是: 如何触发组件B到组件C之间的动作(即两个子组件之间的通信) 只需添加一点,this.sendAction从B到C不起作用您不起作用。就这么简单。然而,还有其他方法可以实现同样的目标 基本模式应该是: 组件B触发对组件A的操作 组件A更改绑定到组件C的值 现在组件C知道操作发生了 这就是一般的余烬流:DDAU(数据下降动作上升) 如果您想要一些封装,可以使用上下文组件,将组件B和C组合在一起,并为它们提供

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


只需添加一点,
this.sendAction
从B到C不起作用

您不起作用。就这么简单。然而,还有其他方法可以实现同样的目标

基本模式应该是:

  • 组件
    B
    触发对组件
    A
    的操作
  • 组件
    A
    更改绑定到组件
    C
    的值
  • 现在组件
    C
    知道操作发生了
  • 这就是一般的余烬流:DDAU(数据下降动作上升)

    如果您想要一些封装,可以使用上下文组件,将组件
    B
    C
    组合在一起,并为它们提供一个共享状态


    举个简单的例子:

    {{component-b onsomething=(action 'myAction')}}
    {{component-c state=state}}
    
    现在在
    component-b
    中,您可以执行
    get(这个'myAction')('newState')
    。在组件
    A
    (父级)中,您有操作
    myAction

    myAction(newState) {
      set(this, 'state', newState);
    }
    
    例如,在组件c内部,您可以使用computed属性根据状态计算某些内容:

    shouldDisplaySomeButton: computed('state', {
      get() {
        return get(this, 'state') === 'newState';
      }
    }),
    

    你没有。就这么简单。然而,还有其他方法可以实现同样的目标

    基本模式应该是:

  • 组件
    B
    触发对组件
    A
    的操作
  • 组件
    A
    更改绑定到组件
    C
    的值
  • 现在组件
    C
    知道操作发生了
  • 这就是一般的余烬流:DDAU(数据下降动作上升)

    如果您想要一些封装,可以使用上下文组件,将组件
    B
    C
    组合在一起,并为它们提供一个共享状态


    举个简单的例子:

    {{component-b onsomething=(action 'myAction')}}
    {{component-c state=state}}
    
    现在在
    component-b
    中,您可以执行
    get(这个'myAction')('newState')
    。在组件
    A
    (父级)中,您有操作
    myAction

    myAction(newState) {
      set(this, 'state', newState);
    }
    
    例如,在组件c内部,您可以使用computed属性根据状态计算某些内容:

    shouldDisplaySomeButton: computed('state', {
      get() {
        return get(this, 'state') === 'newState';
      }
    }),