2015-12-22 6 views
1

Итак, я пытаюсь обновить значение текстового атрибута (имени) в модели ячейки без использования инспектора, мне нужно это, чтобы обновить поле инспектора и значение связанной ячейки. Не знаю, как это сделать. Является ли это возможным?СовместноеJS/Rappid изменение/значение модели ячейки без использования инспектора

ответ

2

Немного сложно точно сказать, что вы имеете в виду из вашего вопроса, плюс у меня нет лицензии 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/

 Смежные вопросы

  • Нет связанных вопросов^_^