Was steuert, wo Ember's Loading Route angezeigt wird?

8

Ich hätte gedacht, dass die LoadingRoute ihre Vorlage in der {{outlet}} der Haupt-AppView anzeigen würde, aber es scheint nicht so zu sein. Was bestimmt, wohin es geht?

Hier ist ein JS Bin meines Problems. Die Lade-Nachricht wird nicht angezeigt, wo ich es erwarte.

    
Sam Selikoff 24.07.2013, 14:35
quelle

4 Antworten

3

Angenommen, Sie haben diese Zuordnung:

%Vor%

Wann wird zu foo route umgestellt. Es wird eine Vorlage eingefügt, die in der into -Eigenschaft der render -Methode angegeben wurde. Mit einem Beispiel:

%Vor%

Wenn dies nicht festgelegt ist, ruft die Route foo die übergeordnete Route ab, in diesem Fall ApplicationRoute, und fügt die Vorlage foo in die Vorlage application ein. Dies ist das Standardverhalten, wenn Sie die renderTemplate -Methode nicht überschreiben.

Aber wenn keine dieser Bedingungen eintritt, ist dies das Verhalten von LoadingRoute , weil es nicht das ApplicationRoute als Elternteil hat. Fügen Sie dann die Vorlage in das body-Tag oder genauer in App.rootElement ein.

    
Marcio Junior 25.07.2013, 01:48
quelle
5

Tatsächlich sieht es so aus, dass es direkt vor dem schließenden Tag des Tags mit der Klasse ember-application eingefügt wird. Mit renderTemplate können Sie steuern, zu welchem outlet es eingefügt wird:

%Vor%

Platzieren Sie dann den loading -Auslass in der Vorlage application :

%Vor%

Beachten Sie, dass der Name des Standardausgangs (d. h. {{outlet}} ) main ist. Wenn Sie jedoch versuchen, den Standardwert outlet zum Rendern von App.LoadingView zu verwenden, treten Probleme auf.

Demo: Ссылка

    
Panagiotis Panagi 24.07.2013 15:31
quelle
1

Wenn Sie das Zeitlimit erhöhen, können Sie feststellen, dass loading template am Ende des Dokuments angehängt ist. Es ist wahrscheinlich entworfen, um mit Überlagerungen von fest positionierten Elementen verwendet zu werden.

Sie können ein weiteres outlet hinzufügen (im folgenden Beispiel loading genannt) und das Rendering von loading template mit Route renderTemplate hook:

erzwingen %Vor%

Sehen Sie sich dieses Beispiel an: Ссылка

    
chrmod 24.07.2013 15:30
quelle
0

Ich vermute, dass dieses Verhalten beabsichtigt ist, also könnte LoadingRoute funktionieren, während ApplicationRoute selbst geladen wird. Das manuelle Rendern der Anwendungsvorlage sollte es Ihnen ermöglichen, in einen ihrer Ausgänge zu rendern.

%Vor%     
Milo 13.08.2013 22:57
quelle

Tags und Links