Сообщите мне, если вы можете мне как-то помочь, я как бы изо всех сил пытаюсь раздобыть голову.Создание JointJs & Backbone/Marionette работает с коллекциями (элементы HTML внутри)
Начиная с некоторых логик приложений марионетка:
app.js
//basic setup
this.Graph = new joint.dia.Graph;
this.Paper = new joint.dia.Paper({ width: 640, height: 480, model: this.Graph });
// [...] lots of code
//adding elements
app.Elements.add(element);
До сих пор так хорошо. Теперь сложная часть. Мне нужна коллекция.
JointCollectionView.js
module.exports = Marionette.CollectionView.extend({
tagName: 'div',
className: 'row',
childView: JointView,
addChild: function(child, ChildView, index){
//does that make sense?
app.Graph.addCell(child);
//should i add it to collection?
if (child.shouldBeShown()) {
return Marionette.CollectionView.prototype.addChild.call(this, child, ChildView, index);
}
},
getChildView: function(item) {
return app.Graph.getCell(item);
}
//[...]
})
Теперь еще сложнее. Как обрабатывать совместный просмотр, чтобы он работал с коллекциями, а также отображал элементы html?
JointView.js
module.exports = joint.dia.ElementView.extend({ /* ?!?!?! */ });
//OR ?
module.exports = Marionette.ItemView.extend({
jointElementView: null, //this will be like above somewhere else...
initialize: function(options){
jointElementView = new JointElementView({ /* ... */ });
}
})
Как это работает для вас? – seebiscuit
Я действительно решил проблему. JointElementView - плохая идея, так как jointjs не работает таким образом. Я обновляю свой пост, чтобы вы могли соответствующим образом изменить свой ответ. Поскольку вы единственный, кто инвестировал некоторое время, глядя на него, ваши очки заслуживают заслуги. Извините за задержку. Занят до xmas :) – proxylittle
Там вы идете. Ред. Исправьте свой ответ, и я его одобрю :) – proxylittle