Вместо того, чтобы пытаться изменить $scope
внутри службы, вы можете реализовать $watch
в своем контроллере, чтобы просмотреть свойство в своей службе для изменений, а затем обновить свойство на $scope
. Вот пример, который вы можете попробовать в контроллере:
angular.module('cfd')
.controller('MyController', ['$scope', 'StudentService', function ($scope, StudentService) {
$scope.students = null;
(function () {
$scope.$watch(function () {
return StudentService.students;
}, function (newVal, oldVal) {
if ( newValue !== oldValue ) {
$scope.students = newVal;
}
});
}());
}]);
Следует отметить, что в вашей службе, чтобы свойство students
было видимым, оно должно быть на службе объект или this
следующим образом:
this.students = $http.get(path).then(function (resp) {
return resp.data;
});