Ember.js legt standardmäßig die 'Fehler'-Route fest, aber der Routenerkenner erlaubt keine doppelten Routen mehr:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531
Wenn Sie dies tun, erhalten Sie eine leere Seite mit einem Fehler in Ihrer Konsole:
Uncaught Error: You may not add a duplicate route named `error`
Hier werden Standard-Fehlerrouten festgelegt:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50
Sie können es testen, indem Sie versuchen, die Route error
mit ember g route error
.
Diese Funktionalität hat in 2.9 gut funktioniert.
@ Diamondo25 Kannst du bitte in einem Twiddle reproduzieren?
Ich sehe das auch und ich kann mich nicht erinnern, es in der letzten Beta von gestern gesehen zu haben
Klingt plausibel. Dies ist auf eine route-recognizer
Änderung zurückzuführen, die ich vorgenommen habe. Die Standarderstellung muss gesperrt werden, wenn der Benutzer bereits eine erstellt hat. (Ich weiß, wie man es repariert, werde es schaffen.)
@ Nathanhammond danke für die schnelle @rwjblue Ich habe als "Bug" bezeichnet. Vielleicht kann dieses Problem mit einer kommenden Version 2.10.1 behoben werden.
Das ist nicht das Problem, @pixelhandler! Dort wurde der Fehler eingeführt. 😜Dies muss nach der Behebung eine Punktfreigabe haben, aber ich muss noch einige andere Dinge ansprechen, bevor ich wieder mit den Routersachen beginnen kann. (Ich habe ungefähr 5 offene Fragen zu beantworten.)
Gibt es einen Status für diesen Kerl?
Wir haben dieses Problem beim Upgrade der Bustle-App auf 2.10 festgestellt und müssen entweder unsere Root-Route error
umgestalten, um einen anderen Namen zu erhalten, oder das Upgrade auf 2.10 unterbrechen.
Wir sind auch am Status dieses Fehlers interessiert. Wir halten uns vorerst vom Upgrade auf 2.10 zurück.
Ich hatte gehofft, ich könnte das umgehen, indem ich die Route error
nicht explizit registriere und meine Fehlervorlage, Route usw. an Ort und Stelle belasse. Ich habe es versucht und gefunden:
Ich denke, ich könnte die Vorlage, die Route, den Controller usw. an Ort und Stelle lassen und eine benutzerdefinierte Fehlerroute registrieren, die für meine explizit behandelten Fehlerfälle auf dieselbe Vorlage verweist. Vielleicht würde dies sowohl die abgefangenen als auch die nicht abgefangenen Fehler mit meiner benutzerdefinierten Vorlage behandeln.
@ Nathanhammond - Hast du irgendwelche Gedanken zu den oben genannten? Lohnt sich der Hackery oder besser, nur auf eine offizielle Lösung zu warten?
Keine Ursache :(
Der obige Vorschlag würde weiterhin die Zuordnung von error
erfordern und diesen Fehler auslösen.
Ich kann einfach die benutzerdefinierte Route für meine behandelten Fehler erstellen und dieselbe Fehlerkomponente in der Vorlage error
.
Scheint der einzige andere Ansatz zu sein, der noch nicht behoben ist.
CC: @ Nathanhammond
Ich habe festgestellt, dass dies in ember v2.12.0-beta.1 behoben ist. Gibt es eine Möglichkeit, dieses Update auf eine Version 2.11 zurückportieren zu lassen? Seit der Beta-Version 2.12 gibt es eine ganze Reihe neuer Probleme.
Seit der Beta-Version 2.12 gibt es eine ganze Reihe neuer Probleme.
Bitte melden Sie alle Probleme, die Sie mit dem Beta-Zyklus finden!
Gibt es eine Chance, dieses Update auf eine Version 2.11 zurückportieren zu lassen?
Ja, ich denke das ist eine gute Idee.
In 2.11.1 behoben
Wurde dies anders behoben als Beta.1? Ich habe gerade 2.11.1 ausprobiert und das gibt mir immer noch einen doppelten Routenfehler über "hotel.error", während die Beta dies nicht tut.
@Glennvd - Ja, es handelt sich um verschiedene Versionen des Routenerkenners (0.2.9 für 2.11 und 0.3 für 2.12). Es ist möglich, dass ich das irgendwie durcheinander gebracht habe. Können Sie den Fehler und die Stapelverfolgung, die Sie mit 2.11 erhalten, teilen? Auch ein Twiddle und / oder Demo Repo möglich? Ich bin froh, eine 2.11.2 veröffentlichen zu können, sobald wir herausgefunden haben, was ich falsch gemacht habe.
@rwjblue Ich habe hier ein Problem, muss nur auf die richtige https://ember-twiddle.com/e4b8412bf5629483f94276a001598571
Vollständiger Stacktrace (aus meiner eigenen App) unten.
add (ember.debug.js:55618)
(anonymous) (ember.debug.js:57247)
(anonymous) (ember.debug.js:55191)
eachRoute (ember.debug.js:55179)
eachRoute (ember.debug.js:55177)
eachRoute (ember.debug.js:55177)
map (ember.debug.js:55190)
map (ember.debug.js:57244)
_initRouterJs (ember.debug.js:27511)
setupRouter (ember.debug.js:27606)
startRouting (ember.debug.js:27592)
startRouting (ember.debug.js:2887)
didBecomeReady (ember.debug.js:3867)
invoke (ember.debug.js:337)
flush (ember.debug.js:405)
flush (ember.debug.js:529)
end (ember.debug.js:599)
run (ember.debug.js:722)
join (ember.debug.js:744)
run.join (ember.debug.js:22286)
(anonymous) (ember.debug.js:22349)
mightThrow (jquery.js:3570)
process (jquery.js:3638)
nrWrapper ((index):97)
Der Fehler ist immer noch der gleiche Uncaught Error: You may not add a duplicate route named
hotel.error .
@rwjblue läuft
grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source
kehrt zurück
node_modules/ember-source/dist/ember.debug.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.prod.js:RouteRecognizer.VERSION = '0.2.8';
Ja, das Problem ist, dass [email protected] mit der dist-Ausgabe von
@rwjblue , sehr geschätzt, Sir.
Lass mich wissen, wenn du etwas brauchst!
OK, ich habe [email protected] mit der aktualisierten dist-Ausgabe freigegeben und dann im Release-Zweig (unter https://github.com/emberjs/ember.js/commit/6c7e6950f127aa31912b5729971703c0c9615655) gestoßen und in der Build-Ausgabe bestätigt (unter https://github.com/components/ember/commit/4a9c7361f4f546daf3ad342da6d196b5b4b6bf20).
Ich habe dann mit dem von @Glennvd oben geteilten release
branch keine Zusicherung erfolgt (und die App startet).
Wenn jemand anderes mich hier überprüfen kann, kann ich 2.11.2 veröffentlichen ...
Darauf.
@rwjblue vergib meine Noobiness,
Ich versuche mein Projekt mit zu bauen
devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...
aber es scheitert weiter
$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'
Was mache ich falsch :)?
@gmaliar ember-source
hat keine Build-Artefakte im Repository, daher müssen Sie das Bower-Tag verwenden oder Ember lokal klonen, erstellen und verknüpfen.
Danke @locks ,
@rwjblue Ich kann bestätigen, dass es funktioniert.
Dies kann geschlossen werden, es funktioniert ordnungsgemäß auf 2.11.2
.
Danke für die Bestätigung!
Hilfreichster Kommentar
In 2.11.1 behoben