I'm new to Backbone.
Is it possible to define a Model in backbone which contains a list of Models of the same type? Example:
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
}
});
I would then have a View which started a recursive call to render(). Example:
MyView = Backbone.View.extend({
render:function() {
this.model.render();
}
});
What you want is a collection. It is basically a list or array of models.
1 no arrays but Collections
Always that you think in an
Array
ofModels
in Backbone think in aCollection
.Now what you have to do is implement a Collection of MyModels and keep one instance of it in your MyModel instance.
2 use Views for render
Always that you think in
render
think in aView
.And the recommend way is that if you have a
Collection
and aModel
better having aView
for each one. This way the View of the Collection will call the View of the Model in an iteration:Sure, why not.
Just not in vanilla Backbone. You'll need a plugin for that. https://github.com/Volicon/backbone.nestedTypes
PS: And as it was mentioned in other responses, you need to use View for rendering stuff. Not models.
Collections are ordered sets of models. For more information check out. http://backbonejs.org/#Collection
Here is an example: