角度HTTPリクエストの管理者は、app/blocks/interceptorに保持されます。そこでは、notification.interceptor.js
と呼ばれるファイルがありますと表示されているエンティティのためのフィルタはありませんので、我々はいくつかの方法でそれを設定する必要があります。我々はまた、アラートを表示またはからエラー応答を記録したい場合は、
(function() {
'use strict';
angular
.module('myApp')
.factory('notificationInterceptor', notificationInterceptor);
notificationInterceptor.$inject = ['$q', 'AlertService'];
function notificationInterceptor ($q, AlertService) {
var service = {
response: response
};
return service;
function response (response) {
var headers = Object.keys(response.headers()).filter(function (header) {
return header.indexOf('app-alert', header.length - 'app-alert'.length) !== -1 || header.indexOf('app-params', header.length - 'app-params'.length) !== -1;
}).sort();
var alertKey = response.headers(headers[0]);
if (angular.isString(alertKey) && alertKey.indexOf('myEntityToBeDisplayed') !== -1) {
AlertService.success(alertKey, { param : response.headers(headers[1])});
}
return response;
}
}
})();
を次にサーバでは、errorhandler.interceptor.js
が発生したエラー応答のそれぞれをインターセプトします。それを少しチューニング、それらのすべてのアラートを表示するチャンスがあります:
(function() {
'use strict';
angular
.module('myApp')
.factory('errorHandlerInterceptor', errorHandlerInterceptor);
errorHandlerInterceptor.$inject = ['$q', '$rootScope'];
function errorHandlerInterceptor ($q, $rootScope) {
var service = {
responseError: responseError
};
return service;
function responseError (response) {
if (!(response.status === 401)) {
$rootScope.$emit('myApp.httpError', response);
}
return $q.reject(response);
}
}
})();
も参照してください: