我主要想知道选项(第一个之后的任何模型)是否通过引用传递。
传递的第一个模型:
App.testModel = Backbone.Model.extend({
defaults: {
passBy: "value"
}
});
要像选项一样传递的第二个模型:
App.testModelOptions = Backbone.Model.extend({
defaults: {
passBy: "value"
}
});
查看将两个模型的passBy设置为“reference”
App.TestView = Backbone.View.extend({
initialize: function() {
this.model1 = this.model;
this.model2 = this.options.model2;
this.model1.set({passBy: "reference"});
this.model2.set({passBy: "reference"});
}
});
主:
// Router
App.AppRouter = Backbone.Router.extend({
routes:{
"":"test"
}
test:function() {
this.testModel = new App.testModel();
this.testModel2 = new App.testModelOptions();
this.testView = new App.TestView({model: this.testModel, model2: this.testModel2});
console.log(this.testModel.get("passBy"));
console.log(this.testModel2.get("passBy"));
}
});
答案 0 :(得分:1)
是。如果您创建模型的实例,将其传递给20个视图,并在其中一个视图中调用set({passBy: "reference"})
- 该属性将在模型中针对所有视图进行更新,因为所有这20个视图都引用了内存中的相同模型。对于传递给视图的任何对象也是如此。