Как обновить элемент из JSON в JointJs

есть ли возможность обновить элемент из JSON в JointJs?

Я отправляю JsonArray через cellView.model.toJSON() на сервер и манипулирую картой. Есть ли способ отправить измененный JsonArray обратно на бумагу, вызвав что-то вроде updateFromJson() в элементе?


person Murat Karagöz    schedule 04.11.2015    source источник
comment
в JointJs мы вносим изменения в модель, а не в представление, но вы можете получить представление элемента с помощью element.findView(paper) и обновить то, что хотите!   -  person Anonymous0day    schedule 04.11.2015
comment
@ Anonymous0day Можно ли обновить его за один раз через Json?   -  person Murat Karagöz    schedule 04.11.2015
comment
О, извините, я пропустил CellView. модель .toJSON ! вы пробовали с cellView.model.set(jsonData); ?   -  person Anonymous0day    schedule 04.11.2015
comment
@Anonymous0day Ого! Оно работает! Документация по API действительно плохая в JointJs. Но спасибо!   -  person Murat Karagöz    schedule 04.11.2015
comment
Я добавил ответ людям, которые ищут то же самое.   -  person Anonymous0day    schedule 04.11.2015


Ответы (1)


Потому что за JointJS стоит Backbone.

Чтобы обновить модель, мы просто вызываем model.set(jsonData).

в вашем случае:
cellView.model.set(jsonData);
должно помочь.

person Anonymous0day    schedule 04.11.2015
comment
Я действительно использовал этот graph.getCell(id).set(arguments), но он должен делать то же самое. - person Murat Karagöz; 04.11.2015
comment
Да, потому что getCell(id) возвращает модель Backbone! - person Anonymous0day; 04.11.2015
comment
У меня проблема с этим. Поскольку моя модель устанавливает прослушиватели в своем конструкторе, когда JointJS загружает свое содержимое из JSON, конструктор не вызывается. Кто-нибудь решил это классным способом? - person Gustavo Meira; 06.08.2016