2013-03-27 18 views
11

Ich möchte eine Liste aller Benutzer in ApplicationController initiieren und sie dann in Dropdown in einer anderen Ansicht anzeigen. Wie kann ich aus verschiedenen Ansichten auf den ApplicationController zugreifen? HierZugriff auf Ember ApplicationController von einer anderen Ansicht aus

ist relevant Code:

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> 

Antwort

19

Geben needs in der Steuerung Ihrer Ansicht des

App.UsersController = Ember.Controller.extend({ 
    needs: ['application'] 
}); 

Ihrer Ansicht Sie dann die Anwendungssteuerung zugreifen können wie folgt

controllers.application 

In Ihrem Beispiel

<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> 
+0

Verrückt, die nicht nach oben zeigte, als ich verwendet '{{Debugger}}', dh '' zurück this.controllers' null' . Aber es funktioniert jetzt! –

+0

Das liegt daran, dass '' this' 'im Kontext der Vorlage dem '' Controller'' entspricht. Das kann durch den Druck von Konstruktoren bewiesen werden, wie zum Beispiel: '' '' {{this.constructor}} // App.ApplicationController {{controller.constructor}} // App.ApplicationController: ember'''' –

2

Sie können über den Behälter für den Controller aussehen

this.container.lookup('controller:application') 
Verwandte Themen