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'});
  })

Я соберу скрипку, если необходимо