我有一個指令,我正在注入一項服務,使$http
調用到後端服務。
如何處理404/401/HTTP錯誤?我正在尋找最佳實踐模式。
$http
是否吞噬並拒絕承諾,當它遇到HTTP錯誤?
這是我迄今爲止,它似乎工作確定,但我不知道我現在做的推薦方式:
服務
app.service('helpService', ['$http', function ($http) {
return {
getHelpUrl: function (pageUrl) {
return $http.post('Home/GetHelpUrl', { pageUrl: pageUrl });
}
}
}]);
指令
app.directive('helpLink', ['$location', 'helpService', function ($location, helpService) {
return {
restrict: 'A',
replace: true,
scope: {},
template: function (elem, attrs) {
return '<a ng-href="{{helpUrl}}" ng-show="showLink" target="_blank">Help?</a>';
},
link: function (scope, elem, attrs) {
scope.showLink = false;
helpService.getHelpUrl($location.path()).success(function (data) {
scope.helpUrl = data.helpUrl;
scope.showLink = true;
});
}
}
}]);
這樣:'。然後(函數(successResult){ },function(errorResult){});'? – Sam
是的,查看這個[link](http://docs.angularjs.org/api/ng.$http)('Returns'section''''''''''''),用於'successResult'和'errorResult'的對象結構 – calebboyd