首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否更改JointJs Paper的交互属性?

是否更改JointJs Paper的交互属性?
EN

Stack Overflow用户
提问于 2015-08-18 21:13:23
回答 3查看 1.2K关注 0票数 2

最近,我需要制作一个JointJs图的交互模式。众所周知,创建纸张对象的过程是这样的:

代码语言:javascript
复制
    paper = new joint.dia.Paper({
      el: $(#myDiagram),
      width: this.props.width,
      height: this.props.height,
      model: this.state.graph,
      gridSize: 1,
      interactive: false
    });

您可以使用所需的选项创建一张新的纸张。在这种情况下,交互( "interactive“标志)被设置为false。不幸的是,在一个纸张对象上没有get,attrs,set方法。我想创建一个更改交互式标志的按钮。它的位置在纸张内部的options对象中。手动访问会更改该值,但这根本不会反映论文。每次更改交互时重新初始化它是唯一的解决方案吗?事先谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2017-03-25 02:16:14

这已经改变了,而且变得更好了。我使用的是jointjs 1.0.3,这对我来说是有效的:

代码语言:javascript
复制
  edit() {
    const self = this
    this.graph.getCells().forEach(function (cell) {
      const c = cell.findView(self.paper)
      c.setInteractivity(true)
    })
  }
票数 1
EN

Stack Overflow用户

发布于 2015-08-19 16:42:45

你已经打过电话了吗?

代码语言:javascript
复制
paper.render()

在改变值之后?

票数 0
EN

Stack Overflow用户

发布于 2015-11-18 18:35:29

我对这个问题的解决方法如下:

代码语言:javascript
复制
_.forEach(this.graph.getLinks(), function (link:joint.dia.Link) {
    self.paper.findViewByModel(link).options.interactive = {
        vertexAdd: true,
        vertexMove: true,
        vertexRemove: true,
        arrowheadMove: false
    }
});

(我在这个问题上使用了David Durman的答案:https://groups.google.com/forum/#!searchin/jointjs/interactive/jointjs/h7tVqVUTd2E/VfA1BaQaFFAJ)

这使我可以更改所有链接的交互性(特别是更改顶点),而不必再次进行纸质初始化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32073497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档