Как загрузить отношения ToT / hasMany в маршруте с EmberJS

В моем приложении EmberJS я показываю список встреч. В действии в AppointmentController мне нужно получить владельца назначений, но владелец всегда возвращает «undefined».

Мои файлы:

Модели / appointment.js

import DS from 'ember-data';

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

Модели / person.js

import DS from 'ember-data';

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

шаблоны / appointmentlist.js

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

Контроллеры / appointmentlist.js

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

Контроллеры / appointment.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
        }
    }
});

Теперь я знаю, что могу поменять владельца наowner: DS.hasMany('person', {async: true}), а затем обработать обещание, возвращенное изappointment.get('owner');, но это не то, что я хочу. Я обнаружил, что если я сделаю это{{appointment.owner}} или это{{appointment.owner.name}} в шаблоне списка встреч запись о владельце извлекается с сервера. Так что я думаю, что Ember не загружает отношения, если они не используются в шаблоне.

Я думаю, что решение моей проблемы состоит в том, чтобы использовать маршрут списка назначений для извлечения записи в отношении принадлежащих. Но я не могу понять, как.

Может как то так?

маршруты / appointmentlist.js

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

РЕДАКТИРОВАТЬ

Я сделал это:

маршруты / appointmentlist.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')   
         });
    }
});

и это работает, но мне не нравится решение ...

Ответы на вопрос(3)

Ваш ответ на вопрос