我正在使用Angular並定義了一個Service和一個Controller。應將哪些數據從服務返回給控制器?
當出現錯誤時,我需要向用戶顯示一條消息。 我是否應該處理控制器或控制器和服務上的錯誤?
服務應該返回$ http並處理控制器上的所有內容嗎?
function postService($http, $log, settings) {
return {
get: function() {
return $http.get("/api/recent-posts");
}
}
}
還是應該服務僅返回件控制器:
function postService($http, $log, settings, $q) {
return {
get: function() {
return $http.get("/api/recent-posts")
.then(function (response) {
return response.data;
}, function (response) {
$log.error("Service Error");
return ($q.reject("Service Error"));
});
}
}
在第二個選擇,我也不回滿$ HTTP信息提供給控制器。
你應該從服務返回承諾,然後切換到控制器作進一步處理,在那裏你可以處理所有的業務登錄包括有效/無效 –