XMen
XMen

Reputation: 30248

how to see list of models in backbone.js

Here is my content.js in which i am using backbone.js for rendering contents.

 // Our basic **Content** model has `content`, `order`, and `done` attributes.
var Content = Backbone.Model.extend({
  // If you don't provide a Content, one will be provided for you.
  EMPTY: "empty Content...",
  // Ensure that each Content created has `content`.
  initialize: function() {

  }
});
var ContentCollection = Backbone.Collection.extend({  
  model : Content
});     
// Create our global collection of **Todos**.
window.Contents = new ContentCollection;
// The DOM element for a Content item...
var ContentView = Backbone.View.extend({
  //... is a list tag.
  tagName:  "li",
  events: {
    "click .content":          "open"
  },
  // a one-to-one correspondence between a **Content** and a **ContentView** in this
  // app, we set a direct reference on the model for convenience.
  initialize: function() {
    _.bindAll(this, 'render', 'close');
    this.model.bind('change', this.render);
    this.model.view = this;
  },
  // Re-render the contents of the Content item.
  render: function() {
    $(this.el).html(this.template(this.model.toJSON()));
    return this;
  }

});

Here is how i am making the list of content and rendering them.

 for(var i=0; i<data.length; i++) {
      var content = new Content(data[i]);
      var templ=_.template($('#tmpl_content').html());

      var view = new ContentView({model: content});
      view.template=templ;
      $("#content").append(view.render().el);
 }

my question is how can i get the contetnt model listing . as i have created the collection

 var ContentCollection = Backbone.Collection.extend({  
      model : Content
    });     
    // Create our global collection of **Todos**.
    window.Contents = new ContentCollection;

So when i do watch Contents it shows length 0 and models [] .

how contetnt will get added in the collection . or how to see list of model in backbone.js

Upvotes: 0

Views: 488

Answers (2)

James Brown
James Brown

Reputation: 658

You also could specify a URL (which should return a JSON array of models) on your collection and then do window.Contents.fetch(). Backbone will auto-populate the model (Content) specified in your collection and automatically add them to your collection.

Upvotes: 0

Thomas Davis
Thomas Davis

Reputation: 1896

You need to Collection.add(models) before it will contain anything.

Upvotes: 1

Related Questions