Você pode pré-carregar dados relacionados para que seus relacionamentos sejam armazenados em cache nos dados da brasa?

Eu tenho um relacionamento hasMany / belongTo simples que se parece com isso

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

Tenho situações no meu código de rota que disparam uma solicitação e, quando a resposta volta, acesso o modelo de "barra" relacionado à medida que filtro / etc

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
});

O exemplo acima não funciona da primeira vez, pois foo.get ('bar') é uma promessa. Mas isso é apenas um problema na primeira vez (solicitações subsequentes de $ .ajax parecem ter todos os objetos de barra em cache, por isso é um problema)

O que é estranho é que, antes mesmo de inicializar o aplicativo, eu já baixei todos os dados da barra no init (mostrado abaixo). Então, por que os dados da brasa precisam resolver a promessa de "barra" quando tecnicamente esses dados já devem estar na loja localmente?

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