局部變數
D3 局部變數讓您定義獨立於資料的局部狀態。例如,在呈現時間序列資料的 小倍數 時,您可能希望所有圖表都使用相同的 x 比例尺,但使用不同的 y 比例尺來比較每個指標的相對效能。D3 局部變數的範圍是 DOM 元素:設定時,值會儲存在指定的元素上;取得時,值會從指定的元素或定義該值的最近祖先中取得。
注意
局部變數很少使用;您可能會發現將所需的狀態儲存在選取的資料中比較容易。
local()
原始碼 · 宣告新的局部變數。
js
const foo = d3.local();
與 var
相同,每個 local 都是一個不同的符號參考;與 var
不同,每個 local 的值也由 DOM 涵蓋。
local.set(node, value)
原始碼 · 將此 local 在指定 node 上的值設定為 value,並傳回指定的 value。這通常使用 selection.each 執行
js
selection.each(function(d) {
foo.set(this, d.value);
});
如果您只設定一個變數,請考慮使用 selection.property
js
selection.property(foo, (d) => d.value);
local.get(node)
原始碼 · 傳回此 local 在指定 node 上的值。
js
selection.each(function() {
const value = foo.get(this);
});
如果 node 未定義此 local,則傳回定義此 local 的最近祖先的值。如果沒有祖先定義此 local,則傳回未定義。
local.remove(node)
原始碼 · 從指定的 node 中刪除此 local 的值。
js
selection.each(function() {
foo.remove(this);
});
如果 node 在移除前定義此 local,則傳回 true,否則傳回 false。如果祖先也定義此 local,則這些定義不受影響,因此 local.get 仍會傳回繼承的值。
local.toString()
原始碼 · 傳回此 local 的自動產生識別碼。這是用於儲存元素上 local 值的屬性名稱,因此您也可以使用 element[local] 或使用 selection.property 設定或取得 local 的值。