理解Angular过滤器异常

时间:2015-06-05 09:12:15

标签: angularjs angular-filters

如果发生异常,是否可以确定调用过滤器的位置?

我有一个在多个页面中使用的过滤器,如果输入参数未定义,则会导致异常。 stacktrace指向我的过滤器功能,这使得很难从它产生的确切的html文件/页面进行调试。

angular.module('myModule', [])
  .filter('myFilter', function() {
    return function(val) {
      // this fails if val is undefined
      return val.something;
    }
  });

我的动机:

我正在使用一个记录到服务器后端的客户端记录器,因此检索此信息将非常有用。

1 个答案:

答案 0 :(得分:0)

您可以通过修饰异常处理程序来实现此目的。

angular.module('myModule').config([
                              '$provide', function($provide) {

        $provide.decorator("$exceptionHandler", ['$delegate', function($delegate) {
            return function(exception, cause) {
                $delegate(exception, cause);
                console.log(exception.toString());
                console.log(exception.fileName);
                console.log(exception.lineNumber);
            };
        }]);

}]);