AngularJS pass service name into state as variable

I have various services that contain data and single state from where I resolve data from the service in order to avoid multiple sates. My problem is that I can't figure out how to pass/retrieve service name into state depending on item. Here is my sample code to get an idea:

This is my single state, it serves to construct the url and resolve data from specific service, the problem is that I need to find a way to pass a service name here just like :itemId. I know that service is an object so I probably can't just save its relative name like ID inside each item, but what could be a solution? Here are my codes:

 .state('single', {    
            url: '/:itemUrl/:itemId',
            templateUrl: 'templates/single.html',
            controller:'singleCtrl',
            resolve: {
                item: function($stateParams, data1Service) {                            
                    return data1Service.getItem($stateParams.itemId);               
                }
            }
        }); 

These are my various services where I hold data:

app.service('data1Service', function($q, $rootScope, $filter, $translate) {     

$translate = $filter('translate');

return {
    items: [{        
        id: '1',        
        title:$translate('TITLE'),
        lang:$translate('LANG'),        
        price:$translate('PRICE'),
        serviceName: 'data1Service' //I thought maybe I could save service name like that and then retrieve it somehow without loosing data reference.
      }],
    getItems: function() {
      return this.items;
    },
    getItem: function(itemId) {
      var dfd = $q.defer();
      this.items.forEach(function(item) {
        if (item.id === itemId) dfd.resolve(item);
      });

      return dfd.promise;
    }

 }; 
});

Another one, etc:

app.service('data2Service', function($q, $rootScope, $filter, $translate) {     

    $translate = $filter('translate');

    return {
        items: [{        
            id: '1',        
            title:$translate('TITLE'),
            lang:$translate('LANG'),        
            price:$translate('PRICE')
          }],
       ......

Thank you for any advice.

I decided to implement a switch by detecting the url, probably not the best solution but it works. I know I should just use one service and somehow to pass data array into service but have no idea how to do that.

 .state('single', {    
            url: '/:itemUrl/:itemId',
            templateUrl: 'templates/single.html',
            controller:'singleCtrl',
            resolve: {
                item: function($stateParams, data1Service, data2Service) {                   
switch($stateParams.itemUrl){
                    case 'val1':
                        return data1Service.getItem($stateParams.itemId);
                    break;

                    case 'val2':
                        return data2Service.getItem($stateParams.itemId);
                    break;                      
                }         

                }
            }
        }); 

whatever you are trying to solve, you better find a better alternative. however you can achieve this by using $injector

url: '/:serviceName/:itemId'
...
var service = $injector.get($stateParams.serviceName);
service.getItem()....