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.
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:
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.
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:
Platzieren Sie dann den loading
-Auslass in der Vorlage application
:
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: Ссылка
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:
Sehen Sie sich dieses Beispiel an: Ссылка
Tags und Links ember.js