EmberJS: загрузка модели с другого (не вложенного) контроллера

У меня есть модель сообщения, которая настроена следующим образом:

App.Message = DS.Model.extend({
    subject   : DS.attr( 'string' ),
    message   : DS.attr( 'string' ),
    deletedBy : DS.attr(),
    createdAt : DS.attr( 'string' ),

    sender     : DS.belongsTo( 'user', {embedded : false, key : 'sender'} ),
    recipient  : DS.belongsTo( 'user', {embedded : false, key : 'recipient'} )
});

В моем InboxController я настроил зависимость с UsersController. Однако, когда я загружаю маршрут входящих напрямую, он не загружает модель UsersController (он не является вложенным). Каков наиболее подходящий способ заставить это работать?

InboxController:

App.InboxController = Ember.ArrayController.extend({
    needs: ['users'],
    itemController: 'inboxItem',
    ...
});

Обновить

Пример Fiddle: http://jsfiddle.net/9asHJ/2/

1 ответ

Решение

Когда вам нужен один контроллер в другой, вы можете использовать needs и получить доступ к UsersController с помощью this.get('controllers.users.something')

Документы

Образец скрипки

В том случае, если вам нужен какой-то контроллер или модель для внедрения во все контроллеры или маршруты или что-то еще, вы можете выполнить внедрение зависимостей во время инициализации приложения.

См. Документы

Другие вопросы по тегам