javascript - Ember-Data objectAt() to get first result does not work -
i'm populating 2 templates data: first template has detailed information model (called slider), , second template has list of last 5 sliders.
the problem when use objectat(0) on result, model not applied template correctly. other template list does populated. mean this:
app.indexroute = ember.route.extend({ setupcontroller: function() { var sliders = app.slider.find({ limit: 5 }); this.controllerfor('indexslider').set('model', sliders.objectat(0)); this.controllerfor('indexsliders').set('model', sliders); // works fine , loads data template } });
that code not work. however, work when replace indexslider model this:
app.indexroute = ember.route.extend({ setupcontroller: function() { var sliders = app.slider.find({ limit: 5 }); this.controllerfor('indexslider').set('model', app.slider.find(52)); this.controllerfor('indexsliders').set('model', sliders); } });
...where 52 id of first result. leads me think objectat doesn't work rendering model on template, or doing wrong?
you'll want wait find
load, before trying access first object. can use didload
event:
app.indexroute = ember.route.extend({ setupcontroller: function() { var sliders = app.slider.find({ limit: 5 }); sliders.one('didload', this, function() { this.controllerfor('indexslider').set('model', sliders.objectat(0)); }); this.controllerfor('indexsliders').set('model', sliders); } });
Comments
Post a Comment