我有一个带有4.5.1版本(Angular 1)的jHipster项目,它做得非常好。但是,我已经修改了生成的前端代码,它是针对所有实体的CRUD,并希望统一其中许多代码。
那就是说,我希望能够选择哪些实体提醒使用UI-Bootstrap。现在,当我在同一视图中保存管理EntityB的EntityA时,我会为每个实体收到两个警报。我只想得到关于第一个的消息。
有什么办法吗?或者更好的是,禁用自动实体消息传递并在控制器中手动执行它?
答案 0 :(得分:0)
角度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);
}
}
})();
另见: