2

对于一个应用程序,我使用的骨架与https://github.com/angular/angular-seed非常相似。

我在 services.js 中尝试过这样的事情:

'use strict';

/* Services */

angular.module('mApp.services', []).
  factory('$exceptionHandler', function () {
    return function (exception, cause) {
        alert(exception.message);
    }
});

这没有做任何事情,它似乎没有覆盖exceptionHandler。

如果我尝试:

var mod = angular.module('mApp', []);

mod.factory('$exceptionHandler', function() {
  return function(exception, cause) {
    alert(exception);
  };
});

它会覆盖整个应用程序。

如果我使用类似于默认角度应用程序的骨架,如何正确覆盖 exceptionHandler?

4

2 回答 2

2

如果不查看您的应用程序的其余部分,很难确定,但我猜它angular.module('myApp').factory( ...会起作用。如果您省略第二个参数 ( ,[]),则 angular 将检索现有模块以进行进一步配置。如果你保持它的角度将创建一个新模块。

于 2013-05-10T19:08:39.080 回答
0

试试这个例子

http://jsfiddle.net/STEVER/PYpdM/

var myApp = angular.module('myApp', ['ng']).provider({

    $exceptionHandler: function(){
        var handler = function(exception, cause) {
            alert(exception);
            //I need rootScope here
        };

        this.$get = function() {
            return handler;
        };
    }
});

myApp.controller('MyCtrl', function($scope, $exceptionHandler) {
    console.log($exceptionHandler);
    throw "Fatal error";
});
于 2013-11-17T08:37:53.967 回答