0
我有以下的角度服務:發送錯誤信息,從服務到控制器
function postService($http, $log, settings) {
return {
get: function (pageNumber, pageSize) {
return $http.get(
"/api/posts",
{ params: { pageNumber: pageNumber, pageSize: pageSize } }
).then(function (response) {
return response.data;
}, function (response) {
$log.error("Service Error");
return "Service Error";
});
}
}
}
我返回數據時,一切都很好......但是,當有一個錯誤我想控制器知道會這樣它可以顯示,例如,一條消息。
然後控制器是:
function PostListController($timeout, settings, postService) {
var vm = this;
vm.posts = [];
vm.pagination = { pageNumber: 1, pageSize: 4 };
vm.load(1, 4);
vm.load = function (pageNumber, pageSize) {
postService.get(pageNumber, pageSize)
.then(function (data) {
console.log("Controller Success");
vm.posts = data;
}, function (error) {
console.log("Controller Error");
console.log(error);
});
};
}
當我模擬在我的控制檯上看到該服務的錯誤:
"Server Error"
"Controller Success"
當它應該是這樣的:
"Server Error"
"Controller Error"
我錯過了什麼?
UPDATE
我應該有以下服務呢?
function postService($http, $log, settings) {
return {
get: function (pageNumber, pageSize) {
return $http.get(
"/api/posts",
{ params: { pageNumber: pageNumber, pageSize: pageSize } }
);
}
}
}
並讓控制器處理數據或錯誤的情況下發生?
我正在做的事情這樣,屆時約翰PAPP-A的風格指南我讀: https://github.com/johnpapa/angular-styleguide#separate-data-calls
在這種情況下,服務處理它...但它不會出現這種情況的情況下返回任何錯誤。
我剛剛爲我的問題添加了一個更新...我認爲你的建議與我以前的做法類似...是嗎? –
通常問一個新問題就容易多了,因爲你有更多的空間來解釋問題是什麼。另外,如果您稍後添加信息,則會使讀者感到困惑,而且沒有人會回頭看看您的更改/新問題。 –