解决小部件之间的顺序

Solve order between widgets

是否有一个选项可以定义在不同的小部件中加载数据的顺序? 默认情况下,它经常发生,某些图表必须加载多次,因为在加载每个过滤器后,它们似乎会被触发。

例如,我们有 3 个过滤器 traffic_group、traffic_partner 和 traffic_channel,它们应该完全按此顺序加载,因为 traffic_group 的结果过滤了 traffic_partners 并且都过滤 traffic_channel.

在 icCube 中没有直接解决这个问题的方法,但通常这可以通过事件依赖关系和删除小部件中任何事件的默认行为来解决。请记住,使用默认值时,事件始终有一个值,相关的 MDX 语句在加载时触发。

如果您想要一个细粒度的控件,您可以通过将两个小部件与一个事件绑定来模拟这种依赖关系,该事件仅在收到请求时由第一个过滤器生成。请记住,您可以在 MDX 语句中添加一个事件作为注释(它不会影响查询,但会充当触发器)。

在小部件的 JS 挂钩中,在 'On Data Recieved' 中是这样的:

function(context, data, $box) {
    return context.fireEvent(eventName, new viz.event.ValueEvent("you got me") );
}