Rozważmy następujący fragment z mojej konfiguracji routingu angularUI. Nawiguję do trasy/kategorii/zarządzania/4/szczegółów (na przykład). Oczekuję, że "kategoria" zostanie rozwiązana przed załadowaniem odpowiedniego kontrolera, a nawet w takim stopniu, w jakim mogę umieścić punkt przerwania w funkcji rozstrzygania, która zwraca kategorię z usługi kategorii i zobaczyć, że kategoria została zwrócona. Teraz umieszczając kolejny punkt kontrolny wewnątrz kontrolera, widzę, że "kategoria" jest zawsze niezdefiniowana. Nie jest wstrzykiwany przez router UI.Router kątowy UI nie rozróżnia wprowadzonych parametrów
Czy ktoś może zobaczyć problem? Może znajdować się w innym miejscu niż podany przeze mnie kod, ale ponieważ nie mam błędów podczas uruchamiania kodu, nie jest możliwe określenie źródła problemu. Typowe js cichej awarii!
.state('category.manage', {
url: '/manage',
templateUrl: '/main/category/tree',
controller: 'CategoryCtrl'
})
.state('category.manage.view', {
abstract: true,
url: '/{categoryId:[0-9]*}',
resolve: {
category: ['CategoryService', '$stateParams', function (CategoryService, $stateParams) {
return CategoryService.getCategory($stateParams.categoryId).then(returnData); //this line runs before the controller is instantiated
}]
},
views: {
'category-content': {
templateUrl: '/main/category/ribbon',
controller: ['$scope', 'category', function ($scope, category) {
$scope.category = category; //category is always undefined, i.e., UI router is not injecting it
}]
}
},
})
.state('category.manage.view.details', {
url: '/details',
data: { mode: 'view' },
templateUrl: '/main/category/details',
controller: 'CategoryDetailsCtrl as details'
})
Dziękujemy! Całkowita racja. Dziwne jest to, że używałem tej składni w usłudze $ http i to zawsze działało dobrze, i biorąc pod uwagę, że moja usługa kategorii zwraca obietnicę, zakładałem, że będzie działać tak samo. Będę musiał zrozumieć, jaka jest różnica, ale jeszcze raz dziękuję za pomoc. Bardzo doceniane. –
Nie widziałem żadnej dokumentacji tego użycia. iw dokumencie pokazuje, że obiekt rozstrzygnięcia ma klucz, fabryka. a fabryka przyjmuje tylko ciąg lub funkcję ... – Demonbane
W końcu udało mi się rozwiązać mój własny problem z tym rozwiązaniem. Dzięki! –