$ routeParams không hoạt động trong chức năng giải quyết


138

Tôi đang sử dụng kỹ thuật này để tải dữ liệu. Vì vậy, tôi đã tạo ra chức năng giải quyết sau đây:

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

Những vấn đề là $routeParams.keyundefinedtại thời điểm resolvethực hiện chức năng. Là nó đúng / lỗi? Làm thế nào tôi có thể sửa chữa nó?

Câu trả lời:


273

Bạn cần sử dụng $route.current.params.keythay thế. Chỉ $routeParamsđược cập nhật sau khi một tuyến đường được thay đổi. Vì vậy, mã của bạn sẽ nhìn dọc theo các dòng đó:

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

7
Cảm ơn bạn! Tại sao tôi cần $ routeParams?
fedor.belov

2
Tôi đoán rằng docs.angularjs.org/api/ng.$routeParams là API tuyệt vời khi một tuyến đường đã được khớp và thay đổi. Nhưng sự thật là nó hơi khó hiểu ...
pkozlowski.opensource

1
Bạn có thể sử dụng $routeParamsbên trong bộ điều khiển
meconroy

13
cho những người sử dụng ui-routervà đến đây: $stateParamslà cách để đi
petrkotek

Nếu bạn đang sử dụng một cái gì đó như Ionickhung công tác, bạn sẽ sử dụng $stateParams.keybên trong chức năng phân giải của mình vì nó sử dụng ui-routernhư @beret đã nói. Mất một lúc tôi mới nhận ra ..
ObjectiveTruth
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.