Backbone Collection doesn't have save method, it is only avaliable on the Model instances. So how can we save collections to the server ?
There are couple of workarounds. I found one very elegant solution, which wraps model around collection. It is opposite to common pattern in which collection is a wrapper around models.
Here is a basic skeleton of this idea:
// // collection class extended var CDShop = Backbone.Collection.extend(); // collection instance var CDShopInstance = new CDShop([ { title: "Blue Train", author: "John Coltrane" }, { title: "Intercontinental", author: "Joe Pass" }, { title: "Confirmation", author: "Charlie Parker" } ]); // model class extended var MusicShop = Backbone.Model.extend({ defaults: { title: "", author: "" }, // passing collection as a property of instance model: CDShopInstance, // imaginary url urlRoot: "/shop" }); // model instance var musicShopInstance = new MusicShop; // testing returns three objects from the collection console.log(musicShopInstance.model.toJSON()); // now we can save out collection to the server musicShopInstance.save(); //
Happy Coding.
No comments:
Post a Comment