簡體   English   中英

在除塵器中提供d3功能的好方法是什么?

[英]What would be a good approach for providing d3 capability in a dust-helper?

現在,我一直在考慮編寫一個除塵器,使用自定義除塵器和節點的d3模塊將條形圖渲染到服務器端的除塵文件中。 我想知道是否有比構造這樣的上下文對象傳遞給灰塵渲染器更好的方法:

{
  padding: {
    top: integer,
    right: integer,
    bottom: integer,
    left: integer
  },
  width: integer,
  height: integer,
  data: [datum, ...],
  x: {
    scale: {
      type: string, // 'linear', 'time', 'ordinal'
      range: 'extent', // optionally [lower, upper]
      tick: { // if applicable
        format: string, // d3 number format for linear scale
                        // d3 time format for time scale
        args: integer | [interval, integer]
      }
    },
    value: string, // datum[value] used for x-axis
  },
  y: {
    ...
  }
}

依此類推,然后讓d3使用此方案來呈現自定義組件,並將SVG標記作為字符串返回。 對我來說,這似乎是一個非常冗長的選擇,需要添加越來越多的屬性,這些屬性會使上下文膨脹,直到變得凌亂而無法很好地管理為止,這就是為什么我想知道是否有一種更好的方法,可能是分割灰塵d3各個組件的助手。

我一直在想這個問題,我認為去了解使用D3作為灰塵過濾器作為替代以下的最佳方法:

dust.filters.d3 = function(value) {
    var node = d3.select(value).node();

    if (node) {
        return node.outerHTML;
    }

    return 'd3 selection not found';
};

並且僅在開始灰塵渲染之前運行d3代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM