[英]view not updating in angularjs after a promise is resolved
我有一個工廠從服務器獲取數據並傳遞給控制器,許多控制器從工廠調用get方法,但只有控制器的范圍變量首先調用工廠而不是全部...這里是我的工廠代碼
(function () {
angular.module('myapp').factory('agendaFactory', ['$http', '$q', function ($http, $q) {
var user = "";
var defer = $q.defer();
var agenda = {
getAll: function (tempData, addType) {
$http.post('/api/' + addType + '/getAll', tempData).success(function (data, status) {
console.log(addType, data);
//console.log(status);
defer.resolve(data);
}).error(function (err, status) {
console.log(err, status);
defer.reject(status);
});
return defer.promise;
}
};
return agenda;
}]);
}());
這是調用它們的兩個控制器..
changeData = function (data) {
console.log("called function in liffe");
$scope.lifetimeData = data;
}
agendaFactory.getAll(tempData, addType).then(function (data) {
console.log('lifeData', data);
changeData(data);
return;
}, function (err) {
console.log('today err', err);
})
和第二個控制器
changeData = function (data) {
console.log("called function in year");
$scope.yearData = data;
}
agendaFactory.getAll(tempData, addType).then(function (data) {
console.log('yeardata', data);
changeData(data);
return;
}, function (err) {
console.log('today err', err);
});
但是只有第一個控制器的數據正在視圖中更新
刪除promise包裝器,因為$http
已經返回一個promise。 因為它們已被棄用,所以也要擺脫成功/錯誤處理程序。
(function () {
angular.module('myapp').factory('agendaFactory', ['$http', '$q', function ($http, $q) {
var user = "";
var agenda = {
getAll: function (tempData, addType) {
return $http.post('/api/' + addType + '/getAll', tempData);
}
};
return agenda;
}]);
}());
然后,您可以處理控制器中的成功/錯誤條件
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.