2015-04-30 5 views
5

Ich versuche, einen Lade-Unterzustand für die Anwendungsroute mit der new named substate options kürzlich hinzugefügt, aber aus irgendeinem Grund kann ich es nicht zum Laufen bringen. Ursprünglich hatte ich nur eine einfache Vorlage erstellt, loading.hbs, und es funktionierte automatisch, aber wegen der Probleme mit Unterzuständen auf der Anwendungsroute war ein Teil meiner Benutzeroberfläche noch sichtbar. Ich möchte das jetzt korrigieren.Create loading substate für die Anwendungsroute

Ich habe versucht, Umbenennen und Verschieben der Vorlage um auf die folgenden Plätze:

/templates/application_loading.hbs 
/templates/application-loading.hbs 
/templates/application/loading.hbs 

Keine scheinen allerdings zu arbeiten. Ich brauche kein benutzerdefiniertes Routing-Verhalten, daher sollte die standardmäßig generierte Route mich unterstützen, es sei denn, dies ist Voraussetzung dafür. Die Dokumentation zu dieser Funktion scheint spärlich zu sein. Ich fand die jsbin for this feature und ich sollte es richtig machen, es sei denn, es gibt ein Problem mit Ember-CLI.

Vielen Dank für Ihre Hilfe.

DEBUG: ------------------------------- 
DEBUG: Ember  : 1.11.1 
DEBUG: Ember Data : 1.0.0-beta.16.1 
DEBUG: jQuery  : 1.11.2 
DEBUG: ------------------------------- 

Antwort

1

Wirklich sollte google es vor dem Hinzufügen der Prämie.

Offensichtlich ist diese Funktion broken. Es gibt bereits eine fix, die nur zusammengeführt und veröffentlicht werden muss.

0

Es sieht aus wie Sie eine moduleBasedResolver

https://github.com/emberjs/ember.js/blob/06e41ad7ccd28558dd4e651aa070bc06f7757821/packages/ember-application/lib/system/application-instance.js#L153

bei diesem Wert in einem glut-cli App

https://github.com/emberjs/ember.js/blob/b80d66f71d75ad0db9022438ed58a41ac84f45f5/packages/ember-routing/lib/system/router.js#L79

Wenn ich mir haben muss es nicht definiert ist. Was seltsam erscheint, da ember-cli auf ES6-Modulen basiert.

Dann habe ich festgestellt, https://github.com/emberjs/ember.js/issues/10756 sieht aus wie Sie eine Route hinzufügen können Anwendung-Laden oder hacken in ModulBasedResolver auf die Registrierung als temporäre Lösung.

und

https://github.com/emberjs/ember.js/pull/10944 sollten das Problem auf längere Sicht beheben.

Es scheint, dass Sie bereits gefunden haben, es schien nicht geladen, als ich diese Antwort schrieb. Entschuldigung für den Lärm.

+0

Da ein Teil der Benutzeroberfläche, was in der Anwendungsvorlage ist, ist immer noch sichtbar. Sie sollten den Absatz direkt nach dem, was Sie zitiert haben, lesen: "Benannte Unterzustände fügen eine neue Suchmethode für Unterzustände hinzu. Der Name der Route wird dem Unterzustand vorangestellt. So kann ein gültiger loading-Unterzustand für die Anwendung als application_loading definiert werden. " Named Substates sind speziell dafür gedacht, dieses Problem zu beheben, aber aus irgendeinem Grund funktioniert es nicht. – NicholasJohn16

+0

Aha yah ich habe das falsch verstanden. Ich denke, ich habe herausgefunden, wo das Problem ist. Antwort aktualisieren – varblob

+0

Gaben Sie das Kopfgeld für die Anstrengung. : P – NicholasJohn16

1

Ich glaube, dass loading.hbs und error.hbs die Lade- und Fehler-Unterzustände der Anwendung sind. Ihre application-loading.hbs existiert nicht zu Ember, weshalb es nicht funktioniert.

Wie für die zusätzlichen UI-Elemente: Ich glaube, der Rest von application.hbs wird unabhängig davon, so dass der einzige Vorschlag, den ich hätte, ist, alle diese Elemente eine Ebene tiefer zu verschachteln. Es klingt wie eine große Qual, aber es ist eigentlich gar nicht so schlecht:

In router.js:

this.resource('whatever', {path: '/'} function() { 
    // All your existing routes 
}); 

Dann application.hbs-whatever.hbs umbenennen und application.hbs nur {{outlet}} in ihm ändern. Dies sollte sich in der Praxis kaum ändern, aber es wird den Rest Ihrer UI-Elemente vom Rendern abhalten, bis der Ladevorgang abgeschlossen ist.