So laden Sie in EmberJS zugehörige / zu / zu / zu / zu viele Beziehungen

In meiner EmberJS-Anwendung wird eine Liste mit Terminen angezeigt. In einer Aktion im AppointmentController muss ich den Termineigentümer abrufen, der Eigentümer gibt jedoch immer "undefined" zurück.

Meine Akten:

modelle / termin.js

import DS from 'ember-data';

export default DS.Model.extend({
    appointmentStatus: DS.attr('number'),
    owner: DS.hasMany('person'),
    date: DS.attr('Date')
});

models / person.js

import DS from 'ember-data';

export default DS.Model.extend({
    name: DS.attr('string')
});

templates / calendarlist.js

{{#each appointment in controller}}
    <div>
        {{appointment.date}} <button type="button" {{action 'doIt'}}>Do something!</button>
    </div>
{{/each }}

controller / terminliste.js

export default Ember.ArrayController.extend({
    itemController: 'appointment'
});

Controller / Ernennung.js

export default Ember.ObjectController.extend({
    actions:{
        doIt: function(){
            var appointment = this.get('model');
            var owner = appointment.get('owner'); //returns undefined
            //Do something with owner
        }
    }
});

Jetzt weiß ich, dass ich die Eigentümereigenschaft in ändern kannowner: DS.hasMany('person', {async: true}), und behandeln Sie dann das Versprechen, das von zurückgegeben wurdeappointment.get('owner');, aber das ist nicht was ich will. Ich habe das entdeckt, wenn ich das tue{{appointment.owner}}&nbsp;oder dieses{{appointment.owner.name}}&nbsp;In der Terminlistenvorlage wird der Besitzerdatensatz vom Server abgerufen. Ich denke, Ember lädt keine Beziehungen, es sei denn, sie werden in der Vorlage verwendet.

Ich denke, dass die Lösung für mein Problem darin besteht, die Route der Terminlisten zu verwenden, um den Datensatz in der Gehört-zu-Beziehung abzurufen. Aber ich kann nicht herausfinden, wie.

Vielleicht so etwas?

routen / terminliste.js

export default Ember.Route.extend({
    model: function() {
        return this.store.find('appointment');
    },
    afterModel: function(appointments){
        //what to do
    }
});

BEARBEITEN

Ich tat dies:

routen / terminliste.js

export default Ember.Route.extend({
    model: function() {
        return this.store.find('appointment');
    },
    afterModel: function(appointments){
         $.each(appointments.content, function(i, appointment){

                var owner= appointment.get('owner')   
         });
    }
});

und es funktioniert, aber ich mag die Lösung nicht ...