首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JointJS/Rappid更改检查器/单元模型值而不使用检查器

JointJS/Rappid更改检查器/单元模型值而不使用检查器
EN

Stack Overflow用户
提问于 2015-12-22 08:52:24
回答 1查看 2.1K关注 0票数 1

因此,我试图在不使用检查器的情况下更新单元格模型中文本属性(name)的值,我需要它来更新检查器字段和链接单元模型值。不知道该怎么做。有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2016-02-04 22:15:04

从您的问题中很难准确地看出您的意思,而且我没有Rappid许可证,所以我无法测试UI检查器部分:o(不过,假设我完全理解您……

...if,您可以使用属性扩展形状的原型,然后可以以正常的角度将其绑定到它,并且在更改属性时自动更新形状。

我想这也会更新检查单元,但我不能测试这个,因为我没有我说过的Rappid许可证。

因此,如果将name属性添加到如下形状:

代码语言:javascript
复制
  Object.defineProperty(joint.shapes.basic.Rect.prototype, 'name', {
      get: function () { return this.attr('text/text'); },
      set: function (value) { this.attr('text/text', value); }
  });

您可以在控制器作用域上公开要编辑的元素并绑定到它。HTML:

代码语言:javascript
复制
<div ng-app>
  <div ng-controller="MyCtrl">
    <div id="paper"/>
    <div>
      <label>Type here:</label>
      <input type="text" ng-model="element.name"  />
    </div>
  </div>
</div>

控制员:

代码语言:javascript
复制
function MyCtrl($scope) {

  var graph = new joint.dia.Graph;
  var paper = new joint.dia.Paper({
      el: $('#paper'),
      width: 400,
      height: 400,
      model: graph,
      gridSize: 1,
      interactive: false
  });

  var element = new joint.shapes.basic.Rect({
      position: {x:100, y:30},
      attrs: {text: {text: 'edit my name'}},
      size: { height: 92.7051, width: 150}
  });

  $scope.element = element;

  graph.addCell(element);

  Object.defineProperty(joint.shapes.basic.Rect.prototype, 'name', {
      get: function () { return this.attr('text/text'); },
      set: function (value) { this.attr('text/text', value); }
  });

}

这里的工作杂耍:http://jsfiddle.net/r7n9t9s6/3/

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

https://stackoverflow.com/questions/34411807

复制
相关文章

相似问题

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