所以我试图在不使用检查器的情况下更新单元模型中文本属性(名称)的值,我需要它来更新检查器字段和链接的单元模型值。不知道该怎么做。可能吗?
问问题
2006 次
1 回答
2
从你的问题中准确说出你的意思有点困难,而且我没有 Rappid 许可证,所以我无法测试 UI Inspector 部分:o(但是假设我理解你正确......
...如果您使用属性扩展形状的原型,则可以像往常一样在 Angular 中对其进行数据绑定,并在您更改属性时自动更新形状。
我想这也会更新检查员单元,但我无法测试这个,因为我没有如我所说的 Rappid 许可证。
因此,如果您将名称属性添加到这样的形状:
Object.defineProperty(joint.shapes.basic.Rect.prototype, 'name', {
get: function () { return this.attr('text/text'); },
set: function (value) { this.attr('text/text', value); }
});
您可以在控制器范围内公开要编辑的元素并绑定到它。的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>
控制器:
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/
于 2016-02-04T22:15:04.930 回答