角.如何在视图中显示异常处理程序的错误
Angular. How can i display error from exception handler on view?
我想在我的应用程序中捕获、自定义和显示我的所有错误和异常。所以我正在努力找到最好的方法来做到这一点。几天前我问了这个问题 AngularJS,从工厂对视图进行更改。一切都很好,直到我遇到注射问题。因此,我尝试找到在工厂视图中显示错误的最佳解决方案。
现在我有了一个观点
<div class="messages">
<div class="message" ng-repeat="message in errors" ng-bind="message"></div>
</div>
和工厂
services.factory('$exceptionHandler',['$injector', function ($injector) {
return function(exception, cause){
var $rootScope = $injector.get('$rootScope');
var $timeout = $injector.get('$timeout');
var message;
$rootScope.errors = $rootScope.errors || [];
switch (exception.message){
case 'Unexpected token A':
message = 'Connection problem';
break;
default:
message = exception.message;
}
$rootScope.errors.push(message);
$timeout(function(){
$rootScope.errors.splice(0,1);
}, 5000);
};
}]);
我正在尝试摆脱将范围插入服务。那么,如何在控制器中获取所有异常以显示它们呢?
您可以像这样创建一个applicationErrors
服务:
angular.module('YourModule').factory('applicationErrors', function() {
var errors = [];
return {
errors: errors
};
});
然后删除异常处理程序中的$timeout
和$rootScope
,并使用此服务来跟踪错误。您可以将其注入控制器,这就是视图访问错误的方式。
但需要注意的一件重要事情是,您需要小心不要覆盖applicationErrors
中的数组。我想你可能想像这样使用它:
angular.module('YourModule').controller('YourController', ['applicationErrors', function(applicationErrors) {
var vm = this;
vm.errors = applicationErrors.errors;
}]);
如果用新数组覆盖applicationErrors.errors
,vm.errors
仍将指向以前的数组。因此,如果您想清除它,请按照以下步骤操作:
applicationErrors.errors.length = 0;
或。。。只需将其作为服务上的一种方法:
angular.module('YourModule').factory('applicationErrors', function() {
var errors = [];
function clear() {
errors.length = 0;
}
return {
errors: errors,
clear: clear
};
});
相关文章:
- 从javascript向Ashx处理程序发送xml数据,并在新窗口中显示响应
- 显示绑定到动态生成的元素的所有事件处理程序
- AngularJS:如何实现全局错误处理程序并显示错误
- 使用 ajaxError 全局处理程序显示 HTTP 状态代码 401 详细信息
- 角.如何在视图中显示异常处理程序的错误
- 复选框单击事件处理程序和显示/隐藏功能
- 如何使工作 Chrome 扩展程序的未捕获异常处理程序(由于 CORS 保护而不起作用)
- 在值更改时在范围输入的处理程序上显示所选值
- Hapi在处理程序中显示未定义的变量
- 用于在Rails中显示隐藏表单的JQuery事件处理程序
- 使用单击事件处理程序的 JQuery.如何防止所有元素不显示一次只显示一个元素
- 如何添加事件处理程序来路由Ember.js中显示的事件
- alert()在加载jQuery文档就绪处理程序时未显示
- 克隆Div和事件处理程序显示/隐藏
- Vert-x 3.3.2 HTTP客户端异常处理程序
- 异常处理程序不捕获异常
- 显示悬停处理程序(fabric js)
- Angular2异常处理程序-检查错误对象是否为响应
- 节点.js中的异常处理程序
- jQuery:全局异常处理程序