Я работаю над мобильным приложением, используя AngularJS в качестве основы, в настоящее время у меня есть структура, подобная этой:
app.config(['$routeProvider', function($routeProvider) {
$routeProvider
.when('/', {
templateUrl : 'pages/home.html',
controller : 'homeCtrl'
})
.when('/one', {
templateUrl : 'pages/one.html',
controller : 'oneCtrl'
})
.when('/two', {
templateUrl : 'pages/two.html',
controller : 'twoCtrl'
});
}]);
app.controller('homeCtrl', ['$scope', function($scope) {
}]);
app.controller('oneCtrl', ['$scope', function($scope) {
}]);
app.controller('twoCtrl', ['$scope', function($scope) {
}]);
А затем я показываю содержимое с помощью ng-view
:
<div class="ng-view></div>
Все работает хорошо, но мне нужно загрузить данные из файла JSON, чтобы заполнить все содержимое приложения. Я хочу сделать вызов AJAX только один раз, а затем передать данные через все мои разные контроллеры. В моей первой попытке я подумал создать службу с $http.get()
внутри нее и включить ее в каждый контроллер, но это не работает, потому что каждый раз, когда я внедряю и использую службу, она делает другой запрос ajax. Поскольку я новичок в использовании angular, мне интересно, как лучше всего или более «угловым способом» добиться этого, не испортив его.
Редактировать: я добавляю код службы, который представляет собой простой $http.get
запрос:
app.service('Data', ['$http', function($http) {
this.get = function() {
$http.get('data.json')
.success(function(result) {
return result;
})
}
});