JointJS提供了去除圖如dia.Link.prototype.disconnect和dia.Link.prototype.remove通過ID從JointJS圖中刪除鏈接?
然而,它們依賴於能夠訪問鏈接對象在第一時間聯繫方法。有沒有辦法通過ID查詢鏈接對象的JointJS圖(joint.dia.Graph
)?
我可以手動維護從ID到鏈接對象的JS映射,但這聽起來很乏味。
JointJS提供了去除圖如dia.Link.prototype.disconnect和dia.Link.prototype.remove通過ID從JointJS圖中刪除鏈接?
然而,它們依賴於能夠訪問鏈接對象在第一時間聯繫方法。有沒有辦法通過ID查詢鏈接對象的JointJS圖(joint.dia.Graph
)?
我可以手動維護從ID到鏈接對象的JS映射,但這聽起來很乏味。
如果你想進入任何鏈接,你有兩個選擇,那麼你可以刪除它們
_.each(cellView.paper.model.getLinks(), function(link) {
console.log(link.id, link.get('source'), link.get('target'))
})
OR
_.each(cellView.paper.model.get('cells'), function(cell) {
if (cell instanceof joint.dia.Link) {
// cell is a link
console.log(cell.id, cell.get('source'), cell.get('target'))
} else {
// cell is an element
console.log(cell.id, cell.get('position'), cell.get('size'), cell.get('angle'))
}
})
courtsey大衛Durman自己 https://groups.google.com/forum/#!topic/jointjs/cWJAK9gSC-Q
別人上圖你可以發出一個事件
graph.on('change:source change:target', function(link) {
you can use link.remove()
}
是否graph.getCell(linkId)不是你想做什麼?
例如
graph.removeCells(graph.getCell(linkId))
'removeCells'接受一個數組,它應該是'graph.removeCells([graph.getCell(linkId)])''''''graph.getCell(linkId).remove()'' –