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')
В том случае, если вам нужен какой-то контроллер или модель для внедрения во все контроллеры или маршруты или что-то еще, вы можете выполнить внедрение зависимостей во время инициализации приложения.