我可以使用attr
方法更改单元格的属性,例如设置链接的笔划:
conn.attr({'.connection': { stroke: 'red' }});
但我宁愿在css文件中设置这样的属性,例如就像在这个
.connection {
stroke: #999;
}
.connection.error {
stroke: #F00;
}
有没有办法将这些类添加到生成的SVG中?
我试过
conn.attr({'.connection': { class: 'error' }});
但是删除了.connection
类,这很重要。它可以写
conn.attr({'.connection': { class: 'connection error' }});
但显然不会扩展为具有多个正交类(error
,highlighted
...)
答案 0 :(得分:3)
在其中一个type class中,我找到了这段代码:
function toggleLive(model, signal) {
// add 'live' class to the element if there is a positive signal
V(paper.findViewByModel(model).el).toggleClass('live', signal > 0);
}
我必须说这看起来像是违反模型 - 视图分离给我直接与视图交互这种方式,但如果在官方代码中使用它,那么我得出结论,这是最惯用的方式。
答案 1 :(得分:1)
任何想要在2018年回答2015年问题的人,也请尝试一下。
我遇到了类似的问题,并使用highlighters
解决了该问题。
cellView.highlight(null, {
highlighter: {
name: 'addClass',
options: {
className: 'some-custom-class'
}
}
});
上面的代码将向单元格视图元素添加一个类some-custom-class
。要删除类,请使用参数完全相同的cellView.unhighlight(...)
方法。请注意,现在它将仅删除some-custom-class
,其他类(如果存在)将保持原样。
参考:https://resources.jointjs.com/docs/jointjs/v2.1/joint.html#highlighters.addClass