- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
问题:
如何在拦截器中使用 $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');
}
})();
问题:
当我加载应用程序时,它会触发以下错误:
Uncaught Error: [$injector:cdep] Circular dependency found: $http <- $templateRequest <- $$animateQueue <- $animate <- $$interimElement <- $mdToast <- HttpError500Interceptor <- $http <- $templateFactory <- $view <- $state
最佳答案
过去对我有帮助的一个解决方法是使用 $injector
在运行时而不是在配置时获取依赖项。所以,像这样:
/* @ngInject */
function HttpError500Interceptor($q,
$injector,
$filter) {
function responseError(responseError) {
var $mdToast = $injector.get('$mdToast');
当您的循环依赖不会导致问题时(在本例中可能不会),这将起到作用。
关于javascript - 在拦截器中使用 `$mdToast` 触发循环依赖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35119231/
所以我最近深入研究了 Angular Materials 库,我试图让 $mdToast 堆叠在彼此之上,但我想要它们每当下面的人消失时就会倒下。我该怎么做? 这是我写代码的笔 My code 最佳答
$scope.addPlaylist = function(song) { $scope.playlist.push(song); var el = angular.eleme
如何在 $mdToast 中打印新行 (\n)。 我的代码: function Notification(text) { $mdToast.show( $mdToast.sim
如何在屏幕上同时显示多个$ mdToast。 我已经看到了这个question,但是不适合我。 例如,如果您尝试在click事件上运行这两次,则下一个将隐藏上一个 toast : $mdToast.s
我正在构建一个使用 AngularJS 和 Angular Material 前端的 Web 应用程序。我想使用 $mdToast 作为错误通知。 我的主应用程序 Controller (AppCtr
问题: 如何在拦截器中使用 $mdToast 而不触发错误? 设置: 拦截器定义: (function () { 'use strict'; angular .module('app.
角料mdToast服务文档显示位置可以是'bottom', 'left', 'top', 'right', 'fit'的任意组合. 如何自定义 Toast 以显示在 'top center'位置? 这
我想在页面顶部显示站点消息(如上次操作的成功或错误通知)。 Angular Material 文档 say您可以在顶部放置 toast : position - {string=}: Where to
我真的很苦恼这个问题,我不知道出了什么问题...... 我将省略很多代码,但这本质上是它的要点...基于 Angular material design guidelines这应该可以工作。我一生都无
app.controller('testCtrl', function ($rootScope, $scope, $mdToast) { $scope.showHideToast = fu
我正在尝试在使用 Angular Material 库的 Angular 应用程序中实现 Toast 消息。 app.service('ToastFlash', ['$mdToast', fu
我的同事正在使用 Angular Material,他正在使用 mdToast这样:(在 else 语句中) $scope.login = () => { $scope.loading = t
使用 $mdToast.simple().content("some test") 时,它会显示黑色的 toast。如何将该颜色更改为红色、黄色等,取决于错误消息的类型,例如错误、警告和成功。 类似的
我有一个 Ruby on Rails Web 应用程序,我正在用 AngularJS 和 Angular Material 对其进行补充。我正在尝试使用绑定(bind)在网页上显示 Angular M
我正在使用 angualr-material 并希望将参数传递给 $mdToast.show()在 Controller 内部,我检查了函数中有一个范围,但我不知道如何编码,我尝试了很多表达式,但没有
我正在尝试在此应用中使用 ngMaterial: Bower.json 文件: { "name": "x", "version": "0.0.0", "description": "x",
我是一名优秀的程序员,十分优秀!