如何在JointJS中锁定单个元素?

时间:2019-05-09 12:21:28

标签: jointjs

我试图弄清楚如何锁定单个元素,以使用户无法移动它们。我不想阻止所有元素仅移到单个元素。

在我的情况下,我想防止用户移动另一个元素(嵌入式)中的元素。

以指针向下事件为例。以下代码不起作用,但是有“锁定”属性或类似的用法吗?

this.paper.on(
  "element:pointerdown",
  function(elementView) {
    elementView.model.set("locked", "true");
  }.bind(this)
);

我尝试使用以下代码使“子”元素不具有交互性,但这会阻止用户从该元素创建例如链接。

this.paper = new joint.dia.Paper({
  interactive: function(cellView) {
    if (cellView.model.isElement()) {
      if (cellView.model.parent()) {
        return false;
      }
    }

    return true;
  },

1 个答案:

答案 0 :(得分:0)

找到了一种解决方案,该解决方案将使元素不可移动,但仍允许用户从该元素创建链接。

this.paper = new joint.dia.Paper({
  interactive: function(cellView) {
    if (cellView.model.isElement()) {
      if (cellView.model.parent()) {
        return { elementMove: false };
      }
    }

    return true;
  },