sto lavorando su un app mobile utilizzando AngularJS come un quadro, attualmente ho una struttura simile a questo:AngularJS App: Caricare i dati da JSON una volta e utilizzarlo in diversi controller
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) {
}]);
E poi ho 'm che visualizza il contenuto con una ng-view
:
<div class="ng-view></div>
le cose stanno funzionando bene, ma ho bisogno di caricare i dati da un file JSON per popolare tutti i contenuti dell'app. Quello che voglio è fare e una chiamata AJAX solo una volta e quindi passare i dati attraverso tutti i miei controller diversi. Nel mio primo tentativo, ho pensato di creare un servizio con uno $http.get()
all'interno di esso e includerlo in ogni controller, ma non funziona perché fa una richiesta ajax diversa ogni volta che iniettare e utilizzare il servizio. Dal momento che sono nuovo con l'angolare, mi chiedo quale sia il modo migliore o il più "angolare" per ottenere ciò senza complicarlo.
Edit: sto aggiungendo il codice del servizio, che è solo un semplice $http.get
richiesta:
app.service('Data', ['$http', function($http) {
this.get = function() {
$http.get('data.json')
.success(function(result) {
return result;
})
}
});
Il servizio non è presente l'esempio codice, che sarebbe la cosa più utile da vedere qui. – seanhodges
@Didier Ti suggerisco di dividere i file di codice in controller diversi e utilizzare un servizio per questo recupero dati. vedere la mia risposta per il codice di servizio –