Получение доступа к Ember ApplicationController с другого вида
Я хотел бы создать список всех пользователей в ApplicationController, а затем показать их в раскрывающемся списке в другом представлении. Как я могу получить доступ к ApplicationController из разных представлений?
Вот соответствующий код:
App.ApplicationRoute = Ember.Route.extend({
setupController:function(controller) {
controller.set('users', App.User.find());
controller.set('selectedUser', null);
}
});
<script type="text/x-handlebars" data-template-name="users">
{{view Ember.Select
contentBinding="App.ApplicationController.users"
optionValuePath="content.id"
optionLabelPath="content.fullName"
selectionBinding="App.ApplicationControllerselectedUser"}}
selected user: {{App.ApplicationController.selectedUser.fullName}}
</script>
Ответы
Ответ 1
Укажите needs
в вашем контроллере просмотра
App.UsersController = Ember.Controller.extend({
needs: ['application']
});
В свою очередь, вы можете получить доступ к контроллеру приложения следующим образом
controllers.application
В вашем примере
<script type="text/x-handlebars" data-template-name="users">
{{view Ember.Select
contentBinding="controllers.application.users"
optionValuePath="content.id"
optionLabelPath="content.fullName"
selectionBinding="controllers.application.selectedUser"}}
selected user: {{controllers.application.selectedUser.fullName}}
</script>
Ответ 2
Вы можете искать контроллер через контейнер
this.container.lookup('controller:application')