我正在构建一个使用JointsJS + Rappid操纵图表的管理工具。我正在尝试将粘贴元素从一张纸A复制到另一张纸B(位于不同的浏览器选项卡上),但是我遇到以下问题:
在Kitchen Sink Rappid demo中,这种行为似乎是相同的:如果我在演示中打开2个选项卡,则会遇到完全相同的问题。您可以通过使用演示应用程序打开2个标签轻松地重现它。
这是我的代码(直接取自Rappid演示):
this.clipboard = new joint.ui.Clipboard();
this.selection = new joint.ui.Selection({
paper: this.paper,
handles: App.config.selection.handles,
collection: new Backbone.Collection
});
this.keyboard = new joint.ui.Keyboard();
this.keyboard.on({
'ctrl+c': function () {
// Copy all selected elements and their associated links.
this.clipboard.copyElements(this.selection.collection, this.graph);
},
'ctrl+v': function () {
var pastedCells = this.clipboard.pasteCells(this.graph, {
translate: {dx: 20, dy: 20},
useLocalStorage: true
});
var elements = _.filter(pastedCells, function (cell) {
return cell.isElement();
});
// Make sure pasted elements get selected immediately. This makes the UX better as
// the user can immediately manipulate the pasted elements.
this.selection.collection.reset(elements);
},
}
Rappid文档中指出:
“此外,剪贴板还能够从一张纸复制单元格, 将它们粘贴到另一个。但是,确定目标 纸留在应用程序层。”
我不完全理解第二句话(“ However ...”结尾)。
我监视了本地存储,发现两篇论文可能使用相同的存储条目,这使我认为图形间粘贴得到了管理。
现阶段,我正在努力寻找是否:
感谢您的帮助。
答案 0 :(得分:1)
我已经从Rappid的工作人员那里得到了答案,这是Rappid中的一个错误,该错误已得到修复。
此修复程序将嵌入到下一版本(可能为2.5)中。