$ routeParams non funziona nella funzione di risoluzione


138

Sto usando questa tecnica per caricare i dati. Quindi ho creato la seguente funzione di risoluzione:

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

Il problema è che $routeParams.keyè undefinedal momento resolvedell'esecuzione della funzione. È corretto / bug? Come posso ripararlo?

Risposte:


273

Devi usare $route.current.params.keyinvece. L' $routeParamsviene aggiornata solo dopo un percorso è stato cambiato. Quindi il tuo codice dovrebbe apparire in questo senso:

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

7
Grazie! Perché allora ho bisogno di $ routeParams?
fedor.belov,

2
Immagino che docs.angularjs.org/api/ng.$routeParams sia una bella API quando una rotta è già stata abbinata e modificata. Ma è vero che è un po 'confuso ...
pkozlowski.opensource

1
È possibile utilizzare $routeParamsall'interno del controller
meconroy

13
per le persone che usano ui-routere vengono qui: $stateParamsè la strada da percorrere
petrkotek,

Se stai usando qualcosa come il Ionicframework, userai $stateParams.keyall'interno della tua funzione di risoluzione poiché usa ui-routercome ha detto @beret. Mi ci è voluto un po 'per capire ..
ObjectiveTruth
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.