【发布时间】:2018-02-18 15:43:00
【问题描述】:
问题:
如何在拦截器中使用$mdToast 而不触发错误?
设置:
拦截器定义:
(function () {
'use strict';
angular
.module('app.components.http-errors-interceptors')
.factory('HttpError500Interceptor', HttpError500Interceptor);
/* @ngInject */
function HttpError500Interceptor($q,
$mdToast,
$filter) {
var interceptor = {};
interceptor.responseError = responseError;
function responseError(responseError) {
if (responseError.status === 500) {
$mdToast.show($mdToast.simple()
.content($filter('translate')('APP.COMPONENTS.HTTP_ERRORS_INTERCEPTORS.500'))
.position('bottom right')
.hideDelay(5000));
}
return $q.reject(responseError);
}
return interceptor;
}
})();
拦截器配置:
(function () {
'use strict';
angular
.module('app.components.http-errors-interceptors')
.config(moduleConfig);
/* @ngInject */
function moduleConfig($httpProvider) {
$httpProvider.interceptors.push('HttpError500Interceptor');
}
})();
问题:
当我加载应用程序时,它会触发以下错误:
未捕获的错误:[$injector:cdep] 找到循环依赖:$http
【问题讨论】:
-
你找到解决方法了吗?
-
@KumarSambhav 是的,我能够解决这个问题,请参阅下面的答案以适合您的特定用例。
标签: javascript angularjs circular-dependency angular-http-interceptors angularjs-material