Итак, я пытаюсь обновить значение текстового атрибута (имени) в модели ячейки без использования инспектора, мне нужно это, чтобы обновить поле инспектора и значение связанной ячейки. Не знаю, как это сделать. Является ли это возможным?СовместноеJS/Rappid изменение/значение модели ячейки без использования инспектора
ответ
Немного сложно точно сказать, что вы имеете в виду из вашего вопроса, плюс у меня нет лицензии Rappid, поэтому я не могу протестировать часть инспектора пользовательского интерфейса: o (Однако, предполагая, что я правильно вас понимаю ...
... если продлить прототип формы со свойством вы можете DataBind к нему в Угловом, как обычно, и это автоматически обновляет форму, как вы измените свойство.
Я думаешь, это будет также обновить ячейку инспектора, но я не могу это проверить, потому что у меня нет лицензии 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/