3 ms·
A post that contains comments. Say you have: { id: 3, text: 'test', comments: [{ cid:4, bleh:5}, {c id:6, bleh:4}] } You give that to a model. It won't aut
by d0m 16y ago
A post that contains comments. Say you have:
{ id: 3, text: 'test', comments: [{ cid:4, bleh:5}, {c id:6, bleh:4}] }
You give that to a model. It won't automatically create a collection with comments.
The idea behind backbone is that I could insert a new comment in the page by simply .add() something to the comments collection. Automatically, that would trigger a add/change event so that my view could update itself. However, it was really quite complicated to obtain that behavior.
I know it's a simple example but the more I used backbone, the more "simple" things like that happened where I had to dig into things I shouldn't have to.
I feel that simple cases should be simple while I would understand that complicated case might be more complicated. However, with backbone.js, I really feel that simple cases aren't that simple.
- raganwald 16y agoSo given: window.Post = Backbone.Model.extend({...}); window.Comments = Backbone.Collection.extend({...}); var p = new Post( id: 3, text: 'test', comments: [ { cid:4, bleh:5}, {c id:6, bleh:4} ] }); You want some way to declare that comments are Comments, so that it is always the case that: (p.attributes.comments instanceof Comments) === true And you also want: p.attributes.comments.add({...}); To trigger a 'change:comments' event on p, even though you aren't changing the reference to the comments collection, just changing its comments. Do I understand you correctly?
- elliottkember 16y agoI've found myself wanting this, too - I sometimes get confused as to which features I can use between models and collections.i
- d0m 16y agoYes, perfectly.
- raganwald 16y agohttps://github.com/unspace/faux/issues#issue/33 https://github.com/unspace/faux/issues#issue/33