重新绑定智能图表,或刷新它

Rebind Smart Chart, or refresh it

我创建了一个包含三列的主从应用程序。第一个视图是 select 一个项目。第二个视图,select WBS 元素。第三个视图,它有一个基于第二个视图的 selected WBS 的智能图表。 到目前为止,第一次触发图表时它工作正常。问题是当我 deselect 一些 WBS 和 select 新的时。我找不到重新绑定图表或刷新第三个视图的方法(因此再次触发 onInit 或 onBeforeRendering)

一旦用户点击第二个视图顶部强调的图表按钮,当前就会创建图表。第二个视图的布局请不要关注,还在开发中

希望你能帮我找到一种方法来在 selected WBS 发生变化后刷新图表。

此致, 丁乔

您可以使用 EventBus。第一次加载图表视图后,EventBus 正在“侦听”。每次你 de/selecting 一个复选框时都会触发事件。

{ // Chart view controller
  onInit: function() {
    this.oEventBus = this.getOwnerComponent().getEventBus();
    this.oEventBus.subscribe("Checkbox", "Selected", this.updateChart); // "Listener"
  },
  updateChart: function(channelId, eventId, data) {
    // ...
  },
}
{ // WBS view controller
  onSelectWBSElement: function(oEvent) {
    const oEventBus = this.getOwnerComponent().getEventBus();
    oEventBus.publish("Checkbox", "Selected", {/*data*/});
  },
}