在前期的文章中,我们分享了用 Highcharts Dashboards 的布局引擎(Layout)、组件(Component)数据池(DataPool)来“搭建”一个静态驾驶舱。但一个静态的驾驶舱是没有灵魂的。

传统的联动是怎么做的?我们监听A图表的 click 事件,然后手动调用 B 图表的 chartInstance.series[0].update(...)

这种方式在组件少的时候还行,一旦组件超过 5 个,联动的逻辑会变成一团“意大利面条”!

Highcharts Dashboards 彻底解决了这个问题。它的核心理念是:

组件之间不直接通信。所有组件只和“数据池(DataPool)”通信。

今天,我们就来实战这个“架构级”的联动。

核心武器:DataModifier (数据修饰器)

在 Highcharts Dashboards 中,DataModifier(修饰器)是实现联动的灵魂。它就像一个“数据处理器”,可以附加在你的 DataConnector(数据连接器)上。

DataModifier(数据修饰器)是 Highcharts 中用于修改数据的工具,特别是在 DataTables 中。它允许用户在数据表的生命周期内自动修改数据,使得数据以所需的格式呈现变得更加容易。

主要特点:

  1. 每个表只能有一个修饰器:每个 DataTable 只能有一个修饰器,但该修饰器可以调用其他修饰器。

  2. 克隆可用性:如果 DataModifier 修改了 DataTable,则可以通过 DataTable.getModified() 方法访问修改后的数据。

  3. 修饰器类型

    • Chain:组合多个修饰器。
    • Filter:根据指定条件过滤数据。
    • Invert:翻转行和列。
    • Math:执行复杂计算。
    • Range:限制数据在特定范围内。
    • Sort:根据指定字段排序数据。

最常用的修饰器就是 Filter (过滤器)

Highcharts Dashboards 的联动机制,是“状态管理”的思维,而不是“DOM 操作”的思维。

  • 解耦 (Decoupling): “按钮”(KPI)和“图表”完全解耦,它们都只依赖“数据池”。

  • 可维护性 (Maintainable): 无论驾驶舱有多复杂,数据流向永远是清晰的(组件事件 -> DataPool -> 依赖组件)。

更多推荐