I’m just beginning out on Backbone.js. Here’s my code.
$(function(){
//Backbone Model
var Cat = Backbone.Model.extend({});
// create a collection
var CatCollection = Backbone.Collection.extend({
model: Cat,
url: 'http://localhost/cats/index.php/cats/index'
});
var catCollection = new CatCollection();
catCollection.fetch();
// Backbone view
var CatView = Backbone.View.extend({
el: $("#contents"),
initialize: function() {
this.render();
},
render: function() {
this.el.html(catCollection);
}
});
var catView = new CatView();
});
What I am doing is.
- Create a backbone model
- Create a collection using the model I created.
- Fetch data from MySQL database – this returns a JSON data object.
- Display the fetched data in the div “#contents”.
On google Chrome, I can see that the “fetch()” method works, because I can see my JSON object returned as
[{"id":"1","name":"stella","age":"5"},{"id":"2","name":"Max","age":"2"}]
But if I do “alert(catCollection)” after the fetch, it displays “[object] [object]”.
What is the best way of displaying this?
You should use the templates in JST array.
“comments\item” is the template path and name
If you are using Rails, just use the Jammit and write templates with ERB (default) or Jade