Ember.js está definindo a rota de 'erro' por padrão, mas o reconhecedor de rotas não permite mais rotas duplicadas:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531
Isso resultará em uma página em branco com um erro no console:
Uncaught Error: You may not add a duplicate route named `error`
As rotas de 'erro' padrão são definidas aqui:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50
Você pode testá-lo tentando manipular a rota error
usando ember g route error
.
Essa funcionalidade funcionou bem no 2.9.
@ diamondo25 Você pode reproduzir em um Twiddle, por favor?
Também estou vendo isso e não me lembro de ter visto no beta mais recente de ontem
Parece legítimo. Isso ocorre em virtude de uma route-recognizer
alteração que fiz. É necessário bloquear a criação padrão se o usuário já tiver criado uma. (Eu sei como consertar, vou conseguir.)
Crosslinking: https://github.com/tildeio/route-recognizer/pull/118
@nathanhammond obrigado por consertar tão rapidamente! @rwjblue I rotulado como "Bug" talvez este problema possa ser resolvido com uma próxima versão 2.10.1.
Essa não é a solução, @pixelhandler! É onde o bug foi introduzido. 😜Isso precisa de uma liberação pontual uma vez corrigida, mas tenho algumas outras coisas a resolver antes de poder voltar a fazer as coisas do roteador. (Tenho cerca de 5 questões em aberto para resolver.)
Existe um status sobre esse cara?
Encontramos esse problema ao atualizar o aplicativo Bustle para 2.10 e precisaremos refatorar nossa rota raiz error
para receber um nome diferente ou adiar a atualização para 2.10.
Também estamos interessados no status desse bug. Estamos adiando a atualização para o 2.10 por enquanto.
Eu esperava poder contornar isso não registrando explicitamente a rota error
e deixando meu modelo de erro, rota, etc. Eu tentei e encontrei:
Estou pensando que talvez eu pudesse deixar o modelo, a rota, o controlador etc. no lugar e registrar uma rota de erro personalizada apontando para o mesmo modelo para meus casos de erro explicitamente tratados. Talvez isso resolvesse os erros detectados e não detectados com meu modelo personalizado.
@nathanhammond - Você tem alguma opinião sobre o acima? Vale a pena hackear ou melhor apenas esperar por uma correção oficial?
Deixa pra lá :(
A proposta acima ainda exigiria o mapeamento error
e acionaria este bug.
Posso simplesmente continuar fazendo a rota personalizada para meus erros manipulados e usando meu mesmo componente de erro no modelo error
.
Parece ser a única outra abordagem pendente de uma correção.
CC: @nathanhammond
Percebi que isso foi corrigido no ember v2.12.0-beta.1. Há alguma chance de fazer o backport desta correção para uma versão 2.11? Já que o beta 2.12 apresenta um monte de novos problemas.
Já que o beta 2.12 apresenta um monte de novos problemas.
Relate quaisquer problemas que você encontrar com o ciclo beta!
Existe alguma chance de retroceder essa correção para uma versão 2.11?
Sim, acho que é uma boa ideia.
Fixado em 2.11.1
Isso foi corrigido de uma maneira diferente do beta.1? Acabei de experimentar 2.11.1 e ainda me dá um erro de rota duplicada sobre "hotel.error", enquanto o beta não.
@Glennvd - Sim, são versões diferentes do identificador de rota (0.2.9 para 2.11 e 0.3 para 2.12). É possível que eu tenha estragado isso de alguma forma. Você pode compartilhar o erro e o rastreamento de pilha obtido com o 2.11? Além disso, é possível um twiddle e / ou repo de demonstração? Estou feliz em lançar um 2.11.2 assim que descobrirmos o que fiz de errado.
@rwjblue Eu tenho um twiddle aqui, só precisa ser alterado para a versão certa do ember https://ember-twiddle.com/e4b8412bf5629483f94276a001598571
Stacktrace completo (do meu próprio aplicativo) abaixo.
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)
O erro ainda é o mesmo Uncaught Error: You may not add a duplicate route named
hotel.error .
@rwjblue running
grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source
retorna
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';
Sim, o problema é que o [email protected] foi lançado com a saída dist do 0.2.8. Eu estou trabalhando nisso...
@rwjblue , Muito
Deixe-me saber se você precisar de alguma coisa!
Nele.
@rwjblue perdoe minha noobiness,
Estou tentando construir meu projeto com
devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...
mas falha em
$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'
O que estou fazendo errado :)?
@gmaliar ember-source
não tem os artefatos de construção no repositório, então você precisa usar a tag do bower ou clonar, construir e vincular o ember localmente.
Obrigado @locks ,
@rwjblue Posso confirmar que está funcionando.
Isso pode ser fechado, funciona corretamente em 2.11.2
.
Obrigado por confirmar!
Comentários muito úteis
Fixado em 2.11.1