Хорошо известно, что вы должны манипулировать элементами DOM внутри директив при использовании AngularJS.
Однако, похоже, что в некоторых случаях использование DOM внутри службы приемлемо. Misko Hevery говорит об этом здесь. Вы также можете найти пример в диалоговом окне Bootstrap UI Dialog.
Объяснение Misko довольно расплывчато, поэтому мне было интересно, как вы определяете, когда вам нужно помещать DOM внутри службы вместо директивы.