$ 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?

fedor.belov
fonte

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);
    }
}
pkozlowski.opensource
fonte
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