次のようなツリーのようなバックボーン モデルがあります。
var Leaf = Backbone.Model.extend({
urlRoot: "tests.json",
initialize: function() {
if (Array.isArray(this.get('children'))) {
var childTree = new Tree();
childTree.on("add",this.addChild);
childTree.add(this.get('children'));
this.set({children: childTree});
}
},
addChild : function(child){
console.log(this);console.log(child);
},
});
var Tree = Backbone.Collection.extend({
model: Leaf,
url: "tests.json",
});
addChild
childTree
初期化メソッドに追加された各要素に対して呼び出されます。しかし、addChild
メソッド内では、モデルではなくコレクションthis
を参照していchildTree
ます...私は比較的javascriptの経験がなく、まったく意味がありません...これは正しい動作ですか、どうすればリスナーをバインドできますか内部のモデルにaddChild
?
JSON は次のようなものです。
[{
"name":"root",
"children":[
{
"name":"inner",
"children":[{
"name":"innerinner",
"attr":{"class":""},
"checked":true,
"locked":true,
"children":[]
}]
}]
}]
前もって感謝します!