在RactiveJS中向子树广播事件

时间:2014-09-15 08:14:17

标签: ractivejs

我需要从父组件到诸如AngularJS中的broadcast方法之类的子组件的fire事件。在RactiveJS中怎么可能?

P.S:例如,我有一个包含不同内容的选项卡包含组件,当选项卡只显示一个选项卡活动(可见)时,其他选项卡被隐藏。当我选择其他标签时,它会变为活动状态并显示内容。此时选项卡应将事件refresh发送到childs组件,让他们知道必须初始化或刷新(因为它被隐藏时无法正确初始化)。

2 个答案:

答案 0 :(得分:2)

在标签组件中,观察标签已变为“活动”状态"并调用refresh:

this.observe('active', function(active){
    if(active){ control.refresh() }
})

答案 1 :(得分:1)

事件不会触发层次结构。

一种选择是将模板放在观看可见或渲染标志的部分中。然后在选项卡变为活动状态时将标志设置为true。如果模板外部存在需要处理的内容,您可以从脚本中进行观察。

出于好奇,什么在它被隐藏的时候无法正确初始化?或者你的意思是没有渲染,因为没有DOM可以访问?在这种情况下,您可能需要查看装饰器。