How do I fetch a single model in Backbone? How do I fetch a single model in Backbone? javascript javascript

How do I fetch a single model in Backbone?


Try specifying urlRoot in the model:

From the docs:

var Book = Backbone.Model.extend({urlRoot : '/books'});var solaris = new Book({id: "1083-lem-solaris"});solaris.fetch();


Your second approach is the approach I have used. Try adding the following to your Clock model:

url : function() {  var base = 'clocks';  if (this.isNew()) return base;  return base + (base.charAt(base.length - 1) == '/' ? '' : '/') + this.id;},

This approach assumes that you have implemented controllers with the hashbang in your URL like so, http://www.mydomain.com/#clocks/123 , but it should work even if you haven't yet.


I personally recommend, following the Model#url method documentation

model = new Model(id: 1)view = new View(model: model) collection = new Collection([model])model.fetch()

in your collection remember to add the collection url:

url: "/models"

and in your View's initialize function do:

this.model.bind("change", this.render)

this way backbone will do an ajax request using this url:

"/models/1"

your model will be updated and the view rendered, without modifying Collection#url or Model#urlRoot

note:sorry this example came out in coffee script, but you can easily translate it to js adding var statements