我想在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>
答案 0 :(得分:19)
在视图的控制器中指定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>
答案 1 :(得分:2)
您可以通过容器
查找控制器this.container.lookup('controller:application')