UI-роутер, используйте stateparams в сервисе
У меня есть это состояние:
.state('admin.category',{
url: '/category',
templateUrl:'views/admin.category.html',
resolve:{
category: ['CategoryLoader', function(CategoryLoader){
return new CategoryLoader();
}]
},
})
Это мой сервис, который я решаю.
.factory('CategoryLoader',['Category', '$state', '$q',
//console.log($state)
function(Category, $state, $q){
return function(){
var delay = $q.defer();
Category.get({cat_id:$state.params.id}, //not working
function(category){
delay.resolve(category);
},
function(){
//delay.reject('Unable to fetch category ' + $state.params.cat_id)
});
return delay.promise;
}
}]);
Все работает, если я меняю $ state.params.id на число. Если я поддерживаю состояние $ в моем сервисе, я получаю все, включая params. Но я не могу использовать это. Следует использовать $ route.current.params.id, который я использовал в других проектах. Как мне сделать то же самое с ui-router?
Обновление: немного больше информации
Родительское состояние:
.state('admin',{
abstract: true,
url: '/admin',
templateUrl:'views/admin.html'
})
Категория фабрика:
factory('Category', function($resource){
return $resource('/api/category/byId/:id/', {id: '@id'});
})
Я соберу скрипку, если необходимо