Backbone.js视图中的多个模型
Backbone.js Multiple Models within a View
是否可以创建一个视图,列出绑定到不同模型的集合?还可以使用排序功能吗?
例如,我有"销售"answers"账户"模型,我想用这些部门的所有工作人员的名字来进行查看。
感谢
当然。您通常会使用以下组合:在集合上应用事件侦听器,创建表示每个模型的小子视图,并通过这些子视图绑定模型事件处理程序。
BigView = Backbone.View.extend({
el: 'ul', // This view is a <ul> and we'll be adding the model views
initialize: function() {
// This collection represents the collection you passed in
// For our purpose lets say it was a SalesCollection
this.collection.on('reset', this.addAllSales, this);
this.collection.on('add', this.addSale, this);
},
addAllSales: function() {
var that = this;
this.collection.each(function(sale) {
that.addSale(sale);
});
}
addSale: function(model) {
var view = new Subview({
'model': model
});
this.$el.append(view.render().el);
}
});
SaleView = Backbone.View.extend({
initialize: function() {
this.model.on('change', this.something, this);
},
render: function() {
this.$el.html(); // Or whatever else you need to do to represent a sale as view
return this;
}
something: function(model) {
// Code for something
}
});
因此,在本例中,您的主视图基本上有一个集合(例如sales)。当重置销售集合时,它会启动addAllSales()
。每次向集合中添加销售时,我们都会添加一个子视图,该子视图表示特定的模型(销售模型)。在这个子视图中,我们负责将事件绑定到模型更改,然后模型更改会执行某些操作。
相关文章:
- 如何使用backbone.js从集合中获取模型名称
- 骨干模型默认值-todos.js示例中不必要的代码
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- Ext.js从json构建模型关系的问题
- 有没有比在app.js上绑定模块名称更好的方法来动态加载视图模型和视图以显示模态
- spine.js在启动时填充模型实例
- Three.JS OBJ模型未显示
- Backbone.js将模型绑定到视图时出错
- 使用树模型 js 异步树遍历
- 在 ember 上复制嵌套模型.js(成功保存后)
- 如何获取语言模型JS文件
- 在鼠标点击位置添加3D模型.js
- 如何将实例方法添加到帆中的所有模型.js
- 导出 MONGO 数据库连接到模型.js文件
- 在骨干网中更改视图的模型.js
- 使Node.js与树模型js协同工作
- 使用没有视图模型. js文件的knockout组件
- 骨干中的嵌套模型.js,如何接近
- 如何将值从集合传递到主干中的模型.js
- 在 Backbone 中查找模型.js按 cid 而不是 id 收集