javascript - JointJS/Rapid change inspector/cell model value without using inspector 不使用检查员

标签 javascript angularjs jointjs rappid

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

最佳答案

从你的问题中准确地说出你的意思有点困难,而且我没有 Rappid 许可证所以我无法测试 UI Inspector 部分 :o( 但是假设我正确理解你......

...如果您使用一个属性扩展形状的原型(prototype),您就可以像往常一样在 Angular 中对其进行数据绑定(bind),并且它会在您更改属性时自动更新形状。

猜想这也会更新检查器单元,但我无法测试它,因为我没有像我说的那样拥有 Rappid 许可证。

因此,如果您像这样向形状添加名称属性:

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

您可以在 Controller 范围内公开要编辑的元素并绑定(bind)到它。 HTML:

<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>

Controller :

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); }
  });

}

在这里工作 jsfiddle:http://jsfiddle.net/r7n9t9s6/3/

关于javascript - JointJS/Rapid change inspector/cell model value without using inspector 不使用检查员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34411807/

相关文章:

javascript - 使用 Service Worker 时离线重写 URL

javascript - 当 htmlMode true 无法与 codemirror 正常工作时,Summernote html 代码 View

javascript - 在用户提交表单之前,如何检查文本框和复选框是否已填写并选中?

python - 语法错误 : missing ; before statement

javascript - JointJS:Hello World 示例不起作用

javascript - 在我的案例中如何发出多个 http 请求?

javascript - Angular,观察 $scope 变化

javascript - Angular.js - 将具有特殊字符和数字的字符串转换为数组并使用 ng-repeat 显示

javascript - 如何增加模板柱之间的间隙

javascript - JointJS 在元素之间创建多个链接