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