我很难为d3元素分配多个函数和类名。我试过了:
.attr('class', (d) => `${d['ORDER_CATALOG_TYPE']}`, (d)`${d['ORDER_STATUS']}`)
(这将第一个返回的函数指定为类,但不指定第二个函数。)
以及
.classed((d) => '${d["ORDER_CATALOG_TYPE"]}', true)
(这将该函数指定为类的名称)
非常感谢对此的任何见解!
答案 0 :(得分:2)
答案 1 :(得分:0)
能够通过使用嵌套函数将函数的结果指定为类名来创建解决方法。
function getClassAssignment (attString) {
return function (d) {
let element = select(this);
element.classed (d[attString], true);
return element.attr('class');
}
}
这保留了旧的类名,我可以用
指定新的类名.attr('class', getClassAssignment('ORDER_CATALOG_TYPE'))
.attr('class', getClassAssignment('ORDER_STATUS'))