Ich versuche, eine gemeinsame Ressource zwischen zwei Controllern in angularjs zu erstellen. Ich habe die getData() im zweiten Controller verwendet, um die gespeicherten Daten zu erhalten und eine Datentabelle innerhalb des zweiten Controllers aufzufüllen. Ich habe den Datentabellenabschnitt im Code aus Gründen der Einfachheit weggelassen.Share-Funktion zwischen zwei Controllern angularjs
Nachstehend ist mein Controller-Datei mit zwei Controllern
(function(){
var app = angular.module('adminCtrls',[]);
// Main Controller
app.controller('mainCtrl', function($scope, $http,testSrv){
// Get the data form the phoenix database based on the query defined
// in db_size.php
$http.get('rest/admin/db_size.php').then(function(response){
$scope.answers = response.data;
$scope.me = "$scope.answer";
testSrv.setData($scope.me);
});
});
})
// Modal Controller
app.controller('modalCtrl', function($scope,$http,testSrv){
console.log(testSrv.getData());
});
});
})(); // EOF
Das Folgende ist meine Winkelanwendungsdatei
(function(){
// Angular App
var app = angular.module('adminApp', ['ngRoute', 'adminCtrls', 'siteSrvs']);
// Routing
app.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider){
// HTML5 Mode
$locationProvider.html5Mode({
enabled: true
});
}]);
})();
Das ist mein Service.
(function(){
// Phoenix Services
var phx = angular.module('siteSrvs',[]);
// Main
phx.service('testSrv', function($http){
// Data Storage
var data = '';
var answers = '';
// Returned Functions
return {
getData : _getData,
setData : _setData,
getAnswers : _getAnswers
}
// Get Data
function _getData(){
return data;
}
// Set Data
function _setData(t){
if(t) data = t;
}
function _getAnswers(){
return $http.get('/rest/test2/test2.php');
}
});
})(); // EOF
Ich versuche Daten in meinem ersten Controller zu setzen und die gleichen Daten von meinem zweiten Controller zu erhalten.
Mein zweiter Controller kann die Daten, die vom ersten Controller gespeichert wurden, nicht sehen.
Ich möchte wissen, ob ich irgendeine Moduleinspritzung vermisse ??
Ich versuche, getData Methode im zweiten Controller zu verwenden, um die Daten zu erhalten und eine Datentabelle innerhalb des zweiten Controllers aufzufüllen. Mein Problem ist getData zeigt nicht die Daten an, die vom ersten Controller –
gespeichert wurden Um es einfach zu halten, habe ich den Anruf zu dem Dienst auskommentiert, den Sie in der ersten Steuerung haben. Ich würde Ihnen empfehlen zu überprüfen, ob die setData tatsächlich aufgerufen wird, denn wenn es einen Fehler gibt, wird nie aufgerufen. Sie könnten setData außerhalb dieses Blocks aufrufen, um es zu testen oder den Fehler für diesen Aufruf zu ermitteln. – elvin