JointJS Paper не визуализируется, если построена с готовой моделью

Я пытаюсь сконструировать Бумагу, при этом у меня уже есть готовая модель для нее.

Например:

var graphModel = new joint.dia.Graph;

/* add cells to graphModel... */

// now construct the Paper to render on screen 
var paper = new joint.dia.Paper({
    el: $('.selector'),
    width: width,
    height: height,
    gridSize: 1,
    model: graphModel
});

Похоже, что Paper рендерится при событиях add, change своей модели, не проверяя, заполнена ли модель уже ячейками для рендеринга (на этапе инициализации).

Иногда модель приходит с ответом REST, который уже был проанализирован в graphModel - так что в этом случае модель готова (поэтому нет необходимости повторно манипулировать ею), и я просто хочу ее визуализировать

Ваше здоровье,

Зив


person Ziv Levy    schedule 27.10.2014    source источник


Ответы (1)


Вы пробовали позвонить

paper.render();

метод? Это должно отобразить представление с уже имеющимися данными.

Редактировать

Вам нужен метод paper#resetCells. Используйте его следующим образом (см. fiddle):

paper.resetCells(graphModel.get("cells"));
person Dethariel    schedule 27.10.2014
comment
да. ничего не делает... функция Paper.render не реализована в JointJS - person Ziv Levy; 27.10.2014
comment
Но это реализовано в Backbone.View, который Paper наследует от - person Dethariel; 27.10.2014
comment
@ZivLevy обновил ответ. Пожалуйста, дайте мне знать, если это не работает для вас - person Dethariel; 27.10.2014
comment
это то, что я пытался сделать в качестве обходного пути. Но, к сожалению, если я уничтожу это представление, а затем повторно обработаю его (например, при выходе из этой страницы и затем вернусь к ней), я получаю эту странную ошибку Error: Invalid value for <g> attribute transform="scale(Infinity,Infinity)" функцией setAttribute в vectorizer. Хотя в model ничего не изменилось - person Ziv Levy; 27.10.2014
comment
Ваш последний комментарий имеет очень мало общего с исходным вопросом. Пожалуйста, рассмотрите возможность открытия нового в этом отношении. - person Dethariel; 27.10.2014
comment
вы пишете, и вы решили оригинал, хотя я думал, что есть более элегантный способ сделать это (или настроить его). Спасибо! - person Ziv Levy; 27.10.2014