Использование сервисов помогает вам изолировать ваш контроллер от дел, связанных с бизнес-логикой, связью и хранением, потому что сервисы предназначены для бизнес-логики или связи с сервером либо с использованием хранилища.
При таком подходе вы используете контроллер только для управления представлениями, связывания данных, проверки форм, взаимодействия с пользователем и т. Д. И для решения проблем, связанных с тестируемостью вашего приложения Angular, поэтому вы можете писать модульные тесты (например, Karma) проще.
Контроллер является конструктором, работает как класс, и Angular создает новые экземпляры контроллера каждый раз, когда создается представление, а также уничтожает контроллер, когда представление уничтожается. Контроллер не подходит для хранения данных приложения в течение всего жизненного цикла приложения. Вот почему сервисы не должны использоваться внутри представлений напрямую, их нужно вводить в контроллер. Сервисы не должны манипулировать объектами DOM, как HTML, так и CSS.