我已经设法使用创建一些<g>标签selection.join()。完成连接后,我想获得<g>方法链接的所有现有标签的完整列表的新选择,即之前存在的标签加上已创建的标签减去已销毁的标签。我如何从joinedNodes变量中得到这个?
private createOrRemovePanelGroups(chartPanelsGroup: any, panelsRectangles: Array<Rectangle>): any {
const joinedNodes: any = chartPanelsGroup
.selectAll('g')
.data(panelsRectangles)
.join(
enter => {
enter.append('g');
});
Run Code Online (Sandbox Code Playgroud)
在下面的第二个示例中,该方法采用矩形的选定<g>区域selectedParentNode和描述符。它必须在这里绘制唯一的矩形。我使用 id 来选择它。在第一次运行中它被创建,但它不包含在 . 返回的选择中.join()。因此,对于新创建的矩形,不会执行最后 4 行。但是,如果第二次执行并且矩形已经存在,则执行这些行,然后设置属性。
static drawRectangle(selectedParentNode: any, rectangle: Rectangle, uniqueId: any, classStyle: any) {
selectedParentNode
.selectAll('#' + uniqueId)
.data([{rectangle}])
.join(
(enter: any) => {
enter
.append('rect')
.attr('id', uniqueId);
},
(update: any) => update
)
.attr('x', rectangle.getLeftX())
.attr('y', rectangle.getTopY())
.attr('width', rectangle.getWidth())
.attr('height', rectangle.getHeight()) …Run Code Online (Sandbox Code Playgroud)