Czy można wstępnie załadować powiązane dane, tak aby relacje były buforowane w danych ember?

Mam prostą relację hasMany / belongsTo, która wygląda tak

App.Foo = DS.Model.extend({
  bar: belongsTo('bar', { async: true})
});
App.Bar = DS.Model.extend({
  foos: hasMany('foo', { async: true})
});

Mam w kodzie trasy sytuacje, które odpalają żądanie, a kiedy odpowiedź wraca, uzyskuję dostęp do powiązanego modelu „bar”, gdy filtruję w dół / itd.

this.store.all('foo').clear();
var fooz = self.store.all('foo'); //new code
return this.store.find('foo').then(function(response) {
  var filtered = response.filter(function(foo) {
    return foo.get('bar').get('name') === 'bazz';
  });
  //other code that would normally be executed top-down
  //including side-effect stuff like this
  //self.store.createRecord('foo', someHash);
  return fooz; //new code
});

Powyższe nie działa po raz pierwszy, ponieważ foo.get ('bar') jest obietnicą. Ale to tylko problem za pierwszym razem (kolejne żądania $ .ajax wydają się mieć wszystkie obiekty w pamięci podręcznej, więc nie jest to problem)

Co dziwne, zanim jeszcze uruchomię aplikację, ściągnąłem już wszystkie dane paska w init (pokazane poniżej). Dlaczego więc dane ember muszą nawet rozwiązać obietnicę „paska”, gdy technicznie dane powinny już znajdować się w sklepie lokalnie?

App.initializer({
  name: 'bootstrap',
  initialize: function() {
    App.deferReadiness();
    var store = App.__container__.lookup("store:main");
    var bars = store.find('bar');
    var configurations = store.find('configuration');
    Ember.RSVP.all([bars, configurations]).then(results) {
      App.advanceReadiness();
    });
  }
});

questionAnswers(1)

yourAnswerToTheQuestion