javascript - How to fetch a specific attribute and put it in a collection in backbone.js? -
i fetch specific attribute , put in collection. json looks this:
{ foo: "lorem ipsum", bars: [{ a: "a", b: {c: "d", e: "f"} }, { a: "u", b: {w: "x", y: "x"} }] } i understand how fetch bars (and not foo bars) , returned somewhere using parse, fetch bars, identify object using attribute a , put b inside of collection.
my idea like
mycollection = backbone.collection.extend({ model: mymodel, url: "someurl", parse: function(data) { data.bars.each(function(bar) { if (bar.a == i) { return bar.b; } } } }; var mycollection = new mycollection(); mycollection.fetch({ success: function() { console.log("proper collection of correct 'b'!"); } }); i having trouble knowing , how pass i if(bar.a == i).
the options pass fetch forwarded collection.parse , means can write this:
mycollection = backbone.collection.extend({ model: mymodel, url: "someurl", parse: function(data, opts) { console.log(opts); // took liberty of replacing filter var matches = _.where(data.bars, {a: opts.i}); return _.map(matches, "b"); } }); var mycollection = new mycollection(); // pass filter option when fetch collection mycollection.fetch({ i: "u", success: function() { console.log("proper collection of correct 'b'!"); } }).then(function() { console.log(mycollection.tojson()); });
Comments
Post a Comment