Also, ich bin neu zu angularjs. Ich möchte MVC-Struktur verwenden. Also dachte ich, dass ich die Antwort von PHP in meinem Dienst speichern und sie dann in meinem Controller verwenden würde.php Antwort in angularjs Service speichern, dann bekommen sie in Controller
Service:
(function() {
angular.module('dataService').service("incidentService", function ($http) {
var Data = [];
return ({
getData: __getData
});
function __getData() {
return Data;
}
function __setData($http, $q) {
var defer = $q.defer();
$http.get('PHP/NAME.php',{cache : 'true'}).
success(function(data){
Data = data;
console.log(Data);
defer.resolve(data);
defer.promise.then(function(data){
Data = data;
console.log(Data);
});
});
}
})})();
Controller:
(function() {
angular.module('app')
.controller('Ctrl', Ctrl);
/** @ngInject */
function Ctrl($scope, $http, $q,baConfig, incidentService) {
incidentService.setData($http,$q)
var DataSet = incidentService.getData();
console.log(DataSet);
}
})();
Durch diese Art und Weise zu tun, das Problem ist mein dataSet nicht aktualisiert, wenn das Datenfeld in meinem Dienst aktualisiert wird. Ich weiß, dass wir ein Verspätungsversprechen an den Controller zurückgeben können, um die Daten zu erhalten, aber können wir die Daten zuerst im Dienst setzen und dann die get-Methode verwenden, um sie zu verwenden?
können Sie den gesamten Definitionen für den Service und die Steuerung schreiben. Es gibt einige grundsätzliche Fehler im obigen Code und es wäre besser, alles zu sehen. –
Auch nicht sicher, welche Version von Angular Sie verwenden, aber der Erfolg ist veraltet. Benutze dann wie ich unten habe. –