所以,我是angularjs的新手。我想使用MVC結構。所以,我在考慮將php的響應存儲在我的服務中,然後在我的控制器中使用它們。在angularjs服務中存儲php響應,然後讓它們進入控制器
服務:
(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);
});
});
}
})})();
控制器:
(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);
}
})();
通過這樣做,問題是當我服務的數據陣列更新我的數據集沒有更新。我知道我們可以向控制器返回一個延遲承諾來獲取數據,但是我們可以首先在服務中設置數據,然後使用get方法來使用它們?
你能後的服務和控制器的整個定義獲取數據。在上面的代碼中有一些基本的缺陷,最好看到它。 –
另外,不確定你正在使用什麼版本的Angular,但成功已被棄用。然後就像我有以下使用。 –