У меня есть контроллер, который извлекает XML-файл с помощью $ http и анализирует его в json-объект. Это «MainCtrl». Теперь я хочу получить один и тот же объект json в других контроллерах, не перейдя через $ http, потому что я уже загрузил XML.Передача данных с одного контроллера на другой Угловой
Вот мой первый контроллер
angularXML.controller('MainCtrl', ['$scope', '$http','courseDefService', function($scope, $http, courseDefService) {
$http.get(base_url + 'assets/js/angularxml/courseDef.xml').then(function(response) {
var chapters = [];
var courseDef = x2js.xml_str2json(response.data);
console.log(courseDef);
}
А вот мой второй контроллер
angularXML.controller('chapterCtrl', ['$scope', '$routeParams', function($scope, $routeParams) {
$scope.chapterNumber = $routeParams.id;
var chapter = $scope.chapterNumber - 1; /* index starts from zero */
}
Я думаю, что нужно использовать завод. Но я не знаю, как это сделать. Я попробовал одну реализацию, где я собирал XML внутри фабрики. Но когда я вызывал фабричный метод, он делал еще один запрос ajax, который я подтвердил с помощью консоли.
Пожалуйста, помогите.
возможно дубликат [Как я могу передавать переменные между контроллерами в AngularJS?] (HTTP: // stackoverflow.com/questions/12008908/how-can-i-pass-variables-between-controllers-in-angularjs) – zsong