从 Filter Box 以外的切片应用仪表板过滤器

Apply dashboard filter from slice other than Filter Box

我想使用过滤器框以外的切片将过滤器应用到我的仪表板。

对于我的数据集,它的结构像一棵树,我已经将 d3 可视化库中的缩进树改编成一个看起来像这样的切片:

我的树切片具有代表不同路径的分支和级别,以及包含我的值的端节点。

现在,我想使用这个切片来过滤我的仪表板。特别是,当用户单击我的一个终端节点时,我想删除所有以前的值并改为应用该节点的值。

我试过将节点的路径和值表示为字符串,并像在常规过滤器框中那样使用它。但是,在很多情况下,我最终会得到非常长的字符串,这会导致糟糕的用户体验。

我查看了 Filter Box 实现,看看是否可以找到用于更改过滤器设置的方法。然而,这似乎是一个相当复杂的过程,并且在我的切片中重新实现 Filter Box 在我看来是错误的方法。

是否有更改和应用仪表板过滤器的通用方法?

"Table" 可视化是目前除 "Filter Box" 之外唯一被设置为(可选)发出仪表板过滤器事件的其他可视化。下面是它的实现方式:

https://github.com/apache/incubator-superset/blob/master/superset/assets/visualizations/table.js#L130

可视化界面是一个接收 slicepayload 参数的函数。 slice 对象公开了 addFilerremoveFilter,如上例所示。

所以设置您的可视化以使用切片对象发出正确的过滤事件是一个问题。