Angular promise in service
This took a while to parse, it's probably me, I found few flaws with the code, except for a distinct lack of comments.


I would have made url in preload an optional, 2nd parameter, I would probably want to call preload a few times with different URL's ( for 'data' )
I think using a switch for media and data is overkill, I would have done a simple if statement.
Since you have a number of times function(data) {deferred.reject(data);});, I would have assigned this to an actual function.
{cache: true}, for data seem unfortunately hardcoded, consider this as well as optional parameter ?
You define current on top, but totalImg in preloadImage, pick one spot and put both vars there
Sometimes you postfix with Img, sometimes with Images. I would stick everywhere to Images, it is so much more readable
Except for the angular.module('myApp').service( line, you have succinct lines of code, nice to read
No need to store a shortcut to data.data in var data = data.data;preloadImage(data, localStorageService.get('cachetoken'));
I would not have gone down the road of managing an array of promises, I probably would have done a simple if (current===totalImg) deferred.resolve('RESOLVED');
'RESOLVED' seems kind of pointless to provide as a parameter to resolve, we know it's resolved ;) Perhaps totalImg + ' images loaded' ?