我有一个控制器,它使用 $http 获取 XML 文件并将其解析为 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 请求。
请帮忙。