backbone.js 能否在一个视图中更新 2 个独立模型
Can 2 independent models be updated in one view in backbone.js
我有 2 个单独的模型,我需要在其中一个视图中更改这些模型。
可以使用 backbone.js
来完成吗
如果是,谁能给我一个简短的样本
谢谢
一种方法是将这些模型中的 collection
绑定到视图:
var collection = new Backbone.Collection();
collection.add(model1);
collection.add(model2);
创建视图时,应使用此集合对其进行初始化:
var myView = new View({collection:collection});
然后,在视图中您可以按以下方式更改每个视图:
events :{ 'input input' : 'updateModels'},
updateModels: function(e){
for(var i=0;i<this.collection.length;i++)
{
this.collection.at(i).set({'someProperty':'someValue'});
}
}
上面的例子会在用户输入时触发。
另一种方法是在您的集合中设置一个自定义 属性 来保存这些模型的数组,然后做同样的事情,但我认为使用集合可以为您完成这项工作。
你可以在这里看到一个非常简单的虚拟示例:http://jsfiddle.net/nwo5bww1/
var app = app||{};
app.Model1 = Backbone.Model.extend({
//some code
});
app.Model2 = Backbone.Model.extend({
//some code
});
var model1 = app.Model1();
var model2 = app.Model2();
app.View = Backbone.View.extend({
initialize : function(options){
console.log(options.model1);
console.log(options.model2);
}
});
var view = new app.View({model1 : model1, model2 : model2});
因此,您可以绑定多个模型,并定义适当的函数来单独更新模型。
另一种非常酷的方法是使用此处介绍的动态模型:Backbone.js: complex views combining multiple models
我有 2 个单独的模型,我需要在其中一个视图中更改这些模型。
可以使用 backbone.js
来完成吗如果是,谁能给我一个简短的样本
谢谢
一种方法是将这些模型中的 collection
绑定到视图:
var collection = new Backbone.Collection();
collection.add(model1);
collection.add(model2);
创建视图时,应使用此集合对其进行初始化:
var myView = new View({collection:collection});
然后,在视图中您可以按以下方式更改每个视图:
events :{ 'input input' : 'updateModels'},
updateModels: function(e){
for(var i=0;i<this.collection.length;i++)
{
this.collection.at(i).set({'someProperty':'someValue'});
}
}
上面的例子会在用户输入时触发。
另一种方法是在您的集合中设置一个自定义 属性 来保存这些模型的数组,然后做同样的事情,但我认为使用集合可以为您完成这项工作。
你可以在这里看到一个非常简单的虚拟示例:http://jsfiddle.net/nwo5bww1/
var app = app||{};
app.Model1 = Backbone.Model.extend({
//some code
});
app.Model2 = Backbone.Model.extend({
//some code
});
var model1 = app.Model1();
var model2 = app.Model2();
app.View = Backbone.View.extend({
initialize : function(options){
console.log(options.model1);
console.log(options.model2);
}
});
var view = new app.View({model1 : model1, model2 : model2});
因此,您可以绑定多个模型,并定义适当的函数来单独更新模型。
另一种非常酷的方法是使用此处介绍的动态模型:Backbone.js: complex views combining multiple models