В пространстве AngularJs и JavaScript есть элемент, называемый правилом точек.Если у вас есть свойство для объекта типа
service.data
, когда вы назначаете его другому объекту
$scope.data = service.data;
Он назначает ссылку на объект, и теперь, если вы обновите службу, контроллерне знает о новых данных.
Используя правило точки, вы можете иметь в службе объект, содержащий объекты данных
service.data = {};
этот объект никогда не должен изменять ссылку на новый объект ивсегда быть одним и тем же экземпляром, и вы можете добавить к нему новые свойства
service.data.userList = response.userList;
Теперь, если вы присваиваете данные в сервисе для области действия
$scope.data = service.data;
и в шаблоне используйте
<div ng-repeat="user in data.userList">{{ user.name }}</div>
Список пользователей будет обновляться, когда служба обновляет список пользователей.
Вы никогда не должны вводить $ http в контроллеры, вы должны только внедрять сервисы в контроллеры, и сервисы должны выполнять http-вызовы.Внедрение $ scope - это устаревший метод выполнения AngularJ, вы следуете устаревшим учебникам и должны изучить использование синтаксиса controllerAs или использовать компоненты, которые обертывают синтаксис controllerAs в стиле разработки Angular 2.