私はバックボーンを初めて使用し、何かに頭を悩ませています。私がやろうとしていることを説明してみましょう: 内部に SVG グループを持つ SVG 要素を持つアプリを作成しています。グループは、次のように互いにネストされます。
http://i.stack.imgur.com/yAkTE.png
Backbone を使用して、各グループのモデルとビューを作成しようとしていました。コレクションを使用して、これらの内部に子グループをネストします。
これまでのところ、SVG の代わりに div を使用して次のように記述し、その側面を実装する前にロジックが機能するようにしました。しかし、私の考えはおそらくどこかで完全に不安定であり、どんな助けも大歓迎です。
バックボーンのネスティングなどについて同様のスレッドがあることは知っていますが、それらのヘルプを見つけることができませんでした。
これまでに書いた JSFiddle をここで見ることができます: http://jsfiddle.net/ZqMeV/ これまでのコードは次のとおりです。
(function ($) {
var Cell = Backbone.Model.extend({
initialize: function(){
this.children = new CellCollection();
}
});
var CellCollection = Backbone.Collection.extend({
model: Cell
});
var CellView = Backbone.View.extend({
tagName: "div",
initialize: function(){
if(this.model.children.models.length > 0){
_.each(this.model.children.models, function(child){
console.log(child);
var cell = new CellView({
model: child
});
$(this.el).append(cell.el);
});
} else {
$(this.el).html('cell');
}
}
});
var Canvas = Backbone.Model.extend({
initialize: function(){
//below is just for testing purposes
this.content = new Cell();
var c = new Cell();
var d = new Cell();
var e = new Cell();
this.content.children.add(c);
this.content.children.add(d);
d.children.add(e);
}
});
var CanvasView = Backbone.View.extend({
el: $("#canvas"),
tagName: "div",
initialize: function(){
this.cellView = new CellView({
model: this.model.content
});
$(this.el).append(this.cellView.el);
}
});
var canvas = new Canvas();
var canvasView = new CanvasView({
model: canvas
});
} (jQuery));
ありがとう