Ember.js définit la route `` erreur '' par défaut, mais route-Recognizer n'autorise plus les routes dupliquées:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531
Cela vous donnera une page vierge avec une erreur dans votre console:
Uncaught Error: You may not add a duplicate route named `error`
Les itinéraires d'erreur par défaut sont définis ici:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50
Vous pouvez le tester en essayant de gérer error
route en utilisant ember g route error
.
Cette fonctionnalité fonctionnait bien dans la version 2.9.
@ diamondo25 Pouvez-vous reproduire dans un Twiddle s'il vous plaît?
Je vois cela aussi et je ne me souviens pas l'avoir vu dans la dernière version bêta d'hier
Semble légitime. C'est en vertu d'un changement route-recognizer
j'ai effectué. Besoin de verrouiller la création par défaut si l'utilisateur en a déjà créé une. (Je sais comment réparer, j'y arriverai.)
Réticulation: https://github.com/tildeio/route-recognizer/pull/118
@nathanhammond merci d'avoir réparé si rapidement! @rwjblue J'ai étiqueté comme "Bug" peut-être que ce problème pourra être résolu avec une prochaine version 2.10.1.
Ce n'est pas la solution, @pixelhandler! C'est là que le bogue a été introduit. 😜 Cela nécessite une version ponctuelle une fois corrigé, mais j'ai quelques autres choses à régler avant de pouvoir revenir pour faire les choses du routeur. (J'ai environ 5 problèmes ouverts à résoudre.)
Y a-t-il un statut sur ce gars?
Nous avons rencontré ce problème lors de la mise à niveau de l'application Bustle vers la version 2.10, et nous devrons soit refactoriser notre route racine error
pour qu'elle porte un nom différent, soit suspendre la mise à niveau vers la version 2.10.
Nous sommes également intéressés par le statut de ce bug. Nous nous abstenons de passer à la version 2.10 pour le moment.
J'espérais pouvoir contourner ce problème en n'inscrivant pas explicitement la route error
et en laissant mon modèle d'erreur, mon itinéraire, etc. en place. Je l'ai essayé et j'ai trouvé:
Je pense que je pourrais peut-être laisser le modèle, la route, le contrôleur, etc. en place et enregistrer une route d'erreur personnalisée pointant vers le même modèle pour mes cas d'erreur explicitement gérés. Peut-être que cela gérerait à la fois les erreurs capturées et non interceptées avec mon modèle personnalisé.
@nathanhammond - Avez-vous des idées sur ce qui précède? Vaut le piratage ou mieux d'attendre un correctif officiel?
Ça ne fait rien :(
La proposition ci-dessus nécessiterait toujours le mappage error
et déclencherait ce bogue.
Je peux simplement faire la route personnalisée pour mes erreurs gérées et utiliser mon même composant d'erreur dans le modèle error
.
Semble être la seule autre approche en attente d'un correctif.
CC: @nathanhammond
J'ai remarqué que cela est corrigé dans ember v2.12.0-beta.1, y a-t-il une chance d'obtenir ce correctif rétroporté vers une version 2.11? Depuis la version bêta 2.12 introduit tout un tas de nouveaux problèmes.
Depuis la version bêta 2.12 introduit tout un tas de nouveaux problèmes.
Veuillez signaler tout problème rencontré avec le cycle bêta!
Y a-t-il une chance de rétroporter ce correctif vers une version 2.11?
Oui, je pense que c'est une bonne idée.
Corrigé dans 2.11.1
Cela a-t-il été résolu d'une manière différente de la version beta.1? Je viens d'essayer 2.11.1 et cela me donne toujours une erreur de route en double à propos de "hotel.error" alors que la version bêta ne le fait pas.
@Glennvd - Oui, ce sont des versions différentes de route-Recognizer (0.2.9 pour 2.11 et 0.3 pour 2.12). Il est possible que j'aie gâché ça d'une manière ou d'une autre. Pouvez-vous partager l'erreur et la trace de pile que vous obtenez avec la version 2.11? Aussi, possible un repo twiddle et / ou démo? Je suis heureux de publier une version 2.11.2 une fois que nous aurons compris ce que j'ai mal fait.
@rwjblue J'ai un twiddle ici, il suffit de changer la bonne version de braise https://ember-twiddle.com/e4b8412bf5629483f94276a001598571
Stacktrace complet (à partir de ma propre application) ci-dessous.
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)
L'erreur est toujours la même Uncaught Error: You may not add a duplicate route named
hotel.error .
@rwjblue en cours d'exécution
grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source
Retour
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';
Oui, le problème est que [email protected] a été publié avec la sortie dist de 0.2.8. J'y travaille...
@rwjblue , très apprécié monsieur.
Faîtes-moi savoir si vous avez besoin de quoi que ce soit!
OK, j'ai publié [email protected] avec la sortie dist mise à jour, puis je suis
J'ai ensuite confirmé avec le twiddle partagé par @Glennvd ci-dessus que lorsque vous utilisez la branche release
, aucune assertion ne se produit (et l'application démarre).
Si quelqu'un d'autre peut me vérifier ici, je peux publier 2.11.2 ...
Dessus.
@rwjblue pardonne ma noblesse,
J'essaye de construire mon projet avec
devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...
mais ça échoue
$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'
Qu'est-ce que je fais mal :)?
@gmaliar ember-source
n'a pas les artefacts de construction dans le référentiel, vous devez donc utiliser la balise bower, ou cloner, construire et lier ember localement.
Merci @locks ,
@rwjblue Je peux confirmer que cela fonctionne.
Cela peut être fermé, cela fonctionne correctement sur 2.11.2
.
Merci d'avoir confirmé!
Commentaire le plus utile
Corrigé dans 2.11.1