$ routeParams tidak berfungsi di fungsi resol

138

Saya menggunakan teknik ini untuk memuat data. Jadi saya telah membuat fungsi tekad berikut:

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

Masalahnya $routeParams.keyadalah undefinedpada saat resolvepelaksanaan fungsi. Apakah benar bug? Bagaimana saya bisa memperbaikinya?

fedor.belov
sumber

Jawaban:

273

Anda harus menggunakannya $route.current.params.keysebagai gantinya. The $routeParamsdiperbarui hanya setelah sebuah rute berubah. Jadi kode Anda harus melihat di sepanjang baris itu:

NoteController.resolve = {
    note: function($route, Note) {
         return Note.get($route.current.params.key);
    }
}
pkozlowski.opensource
sumber
7
Terima kasih! Mengapa saya perlu $ routeParams?
fedor.belov
2
Saya kira docs.angularjs.org/api/ng.$routeParams adalah API yang bagus ketika sebuah rute sudah cocok dan diubah. Tetapi memang benar bahwa itu agak membingungkan ...
pkozlowski.opensource
1
Anda dapat menggunakan $routeParamsdi dalam controller
meconroy
13
untuk orang yang menggunakan ui-routerdan datang ke sini: $stateParamsadalah cara untuk pergi
petrkotek
Jika Anda menggunakan sesuatu seperti Ionicframework, Anda akan menggunakan $stateParams.keydi dalam fungsi resolusinya karena ia menggunakan ui-routerseperti yang dikatakan @beret. Butuh waktu beberapa saat untuk saya sadari ..
ObjectiveTruth