使用backbone.js,这是一个快速测试,以演示我面对嵌套模型的问题.
前言 我有一个Obj模型,它包含2个嵌套模型,Obj1和Obj2.Obj模型本身有一个View(ObjView),主页面本身有一个View(BodyView).
主页面有一个按钮,id = add.每次单击该按钮时,都会向ObjCollection添加一个新的Obj,并且ObjView会向该页面添加一个按钮(id = clickMe).clickMe按钮绑定到一个testFunc,即console.logs this.model和this.model.get("obj1").
问题 从检查console.logs,我看到虽然每个Obj都是一个新实例,但它们的嵌套Obj1指向obj1的同一个实例!但Obj的每个实例显然应该有自己的嵌套模型obj1和obj2的实例.
任何帮助赞赏.
$(document).ready(function(){
var Obj1 = Backbone.Model.extend({
defaults:{
Attr1A : false,
Attr1B : false
}
})
var Obj2 = Backbone.Model.extend({
defaults:{
Attr2A : false,
Attr2B : false
}
})
var Obj = Backbone.Model.extend({
defaults: {
obj1 : new Obj1(),
obj2 : new Obj2()
}
})
var ObjCollection = Backbone.Collection.extend({
model: Obj
});
var ObjView = Backbone.View.extend({
initialize: function(){
_.bindAll(this, 'render', 'testFunc');
this.model.bind('change', this.render);
this.model.view = this;
$("body").append(this.render().el);
}, …Run Code Online (Sandbox Code Playgroud)