2012-11-17 8 views
132

Używam techniki ładowania danych przez this. Więc stworzyliśmy następujące funkcje resolve:

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

problemów jest to, że $routeParams.key jest undefined w momencie resolve wykonania funkcji. Czy to prawda/błąd? Jak mogę to naprawić?

Odpowiedz

266

Zamiast tego należy użyć $route.current.params.key. Numer $routeParams jest aktualizowany tylko po zmianie trasy. Twój kod powinien wyglądać tak:

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

Dziękujemy! Dlaczego potrzebuję wtedy $ routeParams? –

+2

Domyślam się, że http://docs.angularjs.org/api/ng.$routeParams to ładne API, gdy trasa została już dopasowana i zmieniona. Ale prawdą jest, że jest to nieco mylące ... –

+1

Możesz użyć '$ routeParams' wewnątrz kontrolera –

Powiązane problemy