我有个奇怪的问题。我使用D3.js,从数据库中获取的所有数据创建了和弦图。有时我想更改数据库以绘制另一个图而不重新加载所有页面。所以我有清除所有变量的方法,看起来像这样:
clear() {
//Unbind event listeners
this.svg.on(".zoom", null);
//Remove SVG contents
this.svg.selectAll("*").remove();
//Clear variables
this.lastChord = undefined;
this.root = undefined;
this.ringsRoot = undefined;
this.groupsRoot = undefined;
this.interfaceGroups = undefined;
this.ribbonsRoot = undefined;
this.connectionRibbons = undefined;
//Clear filters
this.clearSelectionFilters();
}
我已经创建了模式来执行此操作,当我确认新数据库时,此方法称为:
$("#confirm-button").click(() => {
this.clear();
});
看起来很好,因为旧图消失了,我有了新的图。但是除了这个图表视图之外,我还有其他一些东西,例如滑杆过滤器和其他过滤器。当我想更改这些过滤器时,就会显示每个旧图(在一个会话中创建)。有什么建议可以解决问题吗?