DB 호출을 보내고 인터셉터에서 오류 코드를 캡처하고 경고를 표시하는 동안 응용 프로그램에 대한 알림 서비스를 전역 적으로 만들었습니다.중계기의 중복은 허용되지 않습니다? 고유 한 키를 지정하려면 '추적 기준'표현을 사용하십시오.
각도 알림 서비스에서 중복 된 오류 메시지를 피하는 방법. 서버 호출 응답을 호출 컨트롤러 내부
var interceptor = function ($q, alerts, $rootScope, $timeout, $location, alertsManager) {
return {
request: function (config) {
console.log(config);
return config;
},
response: function (response) {
var deferred = $q.defer();
//$rootScope.$broadcast('loginRequired');
//$scope.alerts.push({ msg: "Request done !" });
return response || $q.when(response);
},
responseError: function (rejection) {
if (rejection.status == 500)
{
var deferred = $q.defer();
$rootScope.$broadcast('loginRequired');
return $q.reject(rejection);
}
console.log(rejection.status);
return $q.reject(rejection);
}
}
};
$httpProvider.interceptors.push(interceptor);
인터셉터 코드입니다.
LoginService.AfterLogin(UserName, Password)).then(function (response) {
},function (status) {
if (status === 500) {
alert("200");
$rootScope.$on("loginRequired", function (e) {
alertsManager.addAlert('Technical Error Occurred.Please contact the System Administrator for the further support!!', 'alert-success');
});
}
});
공장 알림 서비스
App.factory('alertsManager', function() {
return {
alerts: {},
addAlert: function (message, type) {
this.alerts[type] = this.alerts[type] || [];
this.alerts[type].push(message);
},
clearAlerts: function() {
for (var x in this.alerts) {
delete this.alerts[x];
}
}
};
});
방법 항목 :
<div ng-controller="AlertsController">
<div ng-repeat="(key,val) in alerts" class=" alert {{key}}" id="alert-notify">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<div ng-repeat="msg in val">{{msg}}</div>
</div>
</div>
방법 항목 : 방법 2 : 내가 $ 지수에 의해 트랙을 사용하고 이 중복지고.
<div ng-controller="AlertsController">
<div ng-repeat="(key,val) in alerts track by $index" class=" alert {{key}}" id="alert-notify">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
<div ng-repeat="msg in val track by $index">{{msg}}</div>
</div>
</div>
는
왜 angular2로 태그입니까? – yurzui
마지막 예가 정확하지 않습니까? 실제 데이터를 보여줄 수 있으므로 어떤 모습인지 알 수 있습니까? – tasseKATT
나는 당신에게 무슨 말을하는지, 2 번 오류 응답이 나타나지 않고 중복 오류를 보여줍니다. –