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

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);
    }
}

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.