У меня есть фабрика, которая получает данные и возвращает их контроллеру. Он работает на первом контроллере, но ничего не возвращает на втором. У меня сложилось впечатление, что я могу передать это всем контролерам. На минуту я подумал, что, возможно, его можно создать только один раз, поэтому я создал еще одну фабрику с теми же шагами. Все тот же результат. Он вернул пустой массив во втором контроллере
//Factory
angular.module('myApp')
.factory('classData', function($http){
return {
getClassData : function() {
var studentData = [ ];
$http({
method: 'GET',
url: 'theUrl'
}).success(function(data){
for(var i = 0; i < data.length; i++)
studentData.push(data[i]);
}).error(function(){
alert("error", error);
});
return studentData;
}
};
});
//Controller 1:
angular.module('myApp')
.controller('studentListCtrl', function($scope, classData, statService) { //this controller is just view logic
$scope.sortType = 'attendanceYtd';
$scope.searchStudent = '';
$scope.students = classData.getClassData(); //returns all data
//Controller 2:
angular.module('attendanceApp')
.controller('studentHistoryCtrl', function($scope, $stateParams, classData) {
//get all data
$scope.students = classData.getClassData();
console.log($scope.students); //returning an empty array