EMBERJS:如何在子组件中触发操作?

时间:2017-02-06 12:24:15

标签: ember.js components action

我知道Data Down / Actions Up的概念,但我面临的情况是我不知道如何使用DDAU。我搜索了不同的论坛和博客如何做到这一点,但它不符合我的要求。

我有一个带有两个组件的控制器。 在第一个组件上,我有一个带按钮的标题。 在第二个组件上,我有一个表单。

单击该按钮时,控制器将触发操作并将其捕获,但如何通知"单击"在第一个组件的按钮上。

一个简单的解决方案是将第一个组件包含在第二个组件中,但我不能这样做,因为每个组件都用于许多不同的情况。

2 个答案:

答案 0 :(得分:1)

您可以将服务用作总线。

在第二个组件上注册一个事件,并从第一个组件触发该事件。

我在this twiddle

中展示

如果您不想使用服务,可以使用父子模型。

请查看that twiddle

答案 1 :(得分:0)

您可以将foo属性从控制器传递到两个组件,并将第一个组件传递给控制器​​以更改foo。现在,这个兄弟组件也会得到通知,你可以利用兄弟组件中的didUpdateAttrs钩子来对变化作出反应。