相同的嵌套模型'类'在Backbone.js框架中
Nested models of the same 'class' in the Backbone.js framework?
我是Backbone的新手。
是否可以在主干网中定义一个包含相同类型模型列表的模型?示例:
MyModel = Backbone.Model.extend({
initialize: function() {
nestedMyModels:new Array();
},
addMyModel: function(aModel) {
// Code here would push() aModel onto array
},
render: function() {
// Loop through array calling render() recursively
}
});
然后我会有一个View,它启动了对render()的递归调用。示例:
MyView = Backbone.View.extend({
render:function() {
this.model.render();
}
});
1没有数组,只有集合
你总是在主干网的Models
的Array
中思考,在Collection
中思考。
现在,您要做的是实现一个MyModels的集合,并在MyModel实例中保留它的一个实例。
// code simplified and not tested
MyModel = Backbone.Model.extend({
initialize: function() {
this.nestedMyModels: new MyModels();
},
addMyModel: function( model ) {
this.nestedMyModels.add( model );
}
});
MyModels = Backbone.Collection.extend({
model: MyModel
});
2使用视图进行渲染
你总是在render
中思考,在View
中思考。
推荐的方法是,如果你有Collection
和Model
,最好每个都有View
。这样,集合视图将在迭代中调用模型视图:
// code simplified and not tested
MyModelView = Backbone.View.extend({
render: function(){
this.$el.html( model.get("name") );
var view = new MyModelsView({ collection: this.model.nestedMyModels });
this.$el.append( view.render.el );
return this;
}
});
MyModelsView = Backbone.View.extend({
render: function(){
this.collection.each( function( model ){
var view = new MyModelView({ model: model });
this.$el.append( view.render.el );
});
return this;
}
});
您想要的是一个集合。它基本上是一个模型列表或数组。
集合是有序的模型集。欲了解更多信息,请查看。http://backbonejs.org/#Collection
这里有一个例子:
var Library = Backbone.Collection.extend({
model: Book
});
是否可以在主干网中定义一个模型,该模型包含相同类型的型号?
当然,为什么不呢。
var MyModel = Nested.Model.extend();
MyModel.define({
defaults : {
nestedMyModels : MyModel.Collection
},
addMyModel: function( model ) {
this.nestedMyModels.add( model );
}
});
只是没有香草味的Backbone。你需要一个插件。https://github.com/Volicon/backbone.nestedTypes
PS:正如其他回复中提到的,你需要使用View来渲染东西。不是模型。
相关文章:
- backbone.js无法渲染视图
- 如何使用backbone.js从集合中获取模型名称
- Backbone.js restful json API design
- 2个backbone.js集合,具有相同的模型,但排序顺序不同
- Backbone.js micro templating
- FancyTree JS+Backbone.JS-将数据加载到FancyTree时出现问题
- Backbone.js将模型绑定到视图时出错
- minimy javascript是什么意思?Backbone.js
- Backbone.js视图中的多个模型
- 在哪里存储HTML模板以在Backbone.js中使用
- 带有jquery插件的backbone.js视图
- 在Backbone.js中为窗口对象指定变量
- 如何在Backbone.js中编写可重用的模型和视图
- Backbone.js批量更新集合
- 从模型传递id以查看Backbone.js
- Backbone.js中的名称间距
- 一种将Apache Thrift JS绑定与Backbone.JS一起使用的方法
- 在Backbone.js中将回调绑定到此
- Backbone.js ListenToOnce被调用两次
- 使用Backbone.js访问JSON响应的部分