小编Ral*_* B.的帖子

为什么我对 Selection.join() 的调用没有返回输入选择?

我已经设法使用创建一些<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)

javascript d3.js

4
推荐指数
1
解决办法
374
查看次数

标签 统计

d3.js ×1

javascript ×1