【问题标题】:Ember trigger action between child components子组件之间的 Ember 触发动作
【发布时间】:2018-03-21 10:52:37
【问题描述】:

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

补充一句,this.sendAction 从 B 到 C 不起作用

【问题讨论】:

    标签: javascript jquery ember.js


    【解决方案1】:

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

    基本模式应该是:

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

    这是一般的 ember 流程​​:DDAU(数据向下动作向上)。

    如果你想要一些封装,你可以使用上下文组件,group 组件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';
      }
    }),
    

    【讨论】:

      猜你喜欢
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      相关资源
      最近更新 更多