$ routeParams não funciona na função de resolução


138

Estou usando essa técnica para carregar dados. Então, eu criei a seguinte função de resolução:

NoteController.resolve = {
    note: function($routeParams, Note) {
         return Note.get($routeParams.key);
    }
}

O problema é que $routeParams.keyestá undefinedno momento da resolveexecução da função. Está correto / bug? Como posso corrigir isso?

Respostas:


273

Você precisa usar em seu $route.current.params.keylugar. O $routeParamsé atualizado somente depois que uma rota é alterada. Portanto, seu código deve parecer com essas linhas:

NoteController.resolve = {
    note: function($route, Note) {
         return Note.get($route.current.params.key);
    }
}

7
Obrigado! Por que preciso de $ routeParams então?
Fedor.belov 17/11/2012

2
Eu acho que docs.angularjs.org/api/ng.$routeParams são boas API quando uma rota já foi correspondida e alterada. Mas é verdade que é um pouco confuso ...
pkozlowski.opensource

1
Você pode usar $routeParamsdentro do controlador
meconroy

13
para pessoas que usam ui-routere vêm para cá: $stateParamsé o melhor caminho
petrkotek

Se você estiver usando algo como o Ionicframework, você usará $stateParams.keydentro da sua função de resolução, pois ela usa ui-routercomo o @beret disse. Levei um tempo para perceber ..
ObjectiveTruth
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.