Угловой UI-маршрутизатор не разрешает введенные параметры
Итак, рассмотрим следующий фрагмент из моей настройки маршрутизации angularUI. Я перемещаюсь к маршруту / категории / управлять / 4 / детали (например). Я ожидаю, что «категория» будет разрешена до того, как будет загружен соответствующий контроллер, и действительно, я могу поместить точку останова в функцию разрешения, которая возвращает категорию из службы категорий, и посмотреть, что категория была возвращена. Теперь, поместив еще одну точку останова внутри самого контроллера, я вижу, что «категория» всегда не определена. Это не вводится маршрутизатором пользовательского интерфейса.
Кто-нибудь может увидеть проблему? Это может быть где-то иначе, чем в коде, который я предоставил, но, так как у меня нет ошибок при запуске кода, невозможно сказать, где может лежать источник проблемы. Типичные тихие сбои!
.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'
})