$exceptionHandler 구현을 재정의하는 방법
Javascript 예외가 발생할 때마다 추가로 하고 싶은 일이 있습니다.
다음 문서에서$exceptionHandler
:
각도 표현식의 수집되지 않은 예외는 이 서비스에 위임됩니다.기본 구현에서는 $log.error를 위임하고 브라우저 콘솔에 로그인합니다.
「디폴트 실장」이라고 하는 것에 의해서, 서비스 전용의 실장을 제공해, 예외가 발생했을 때에 필요한 작업을 실시할 수 있는 방법이 있다고 생각할 수 있습니다.제 질문은, 이걸 어떻게 하느냐는 것입니다.이 서비스에 대한 모든 예외를 유지하면서 원하는 기능을 제공하려면 어떻게 해야 합니까?
이를 위해 찾은 또 다른 선택지는 이 '장식'입니다.$exceptionHandler
$120.discator 함수를 통해 이루어집니다.커스텀 실장의 일부로서 원래의 실장을 사용하고 싶은 경우는, 이것을 참조할 수 있습니다.다음과 같은 작업을 수행할 수 있습니다.
mod.config(function($provide) {
$provide.decorator("$exceptionHandler", ['$delegate', function($delegate) {
return function(exception, cause) {
$delegate(exception, cause);
alert(exception.message);
};
}]);
});
원래 예외 핸들러의 동작과 커스텀 기능이 실행됩니다.
이 업데이트된 바이올린을 참조하십시오.
재지정할 수 있습니다.$exceptionHandler
같은 이름의 서비스를 생성하여 기능을 수행합니다.
var mod = angular.module('testApp', []);
mod.factory('$exceptionHandler', function () {
return function (exception, cause) {
alert(exception.message);
};
});
샘플은 이 바이올린을 보세요.공장 출하 시의 정의에 대해 코멘트해 주십시오.$exceptionHandler
이 에러는 콘솔에 경고하는 대신 기록됩니다.
다음 그룹 스레드에는 다음과 같은 다른 서비스를 주입하는 예가 있습니다.$http
사용.$injector
.
주의: 의 기존 기능을 덮어쓰지 않는 경우$exceptionHandler
(또는 다른 임베디드 서비스) 서비스의 장식 방법에 대해서는, 이 회답을 참조해 주세요.
$cookie Store라도 서비스/팩토리를 덮어쓸 수 있습니다.완전하고 설정 가능한 오브젝트를 필요로 하는 경우는, 다음의 예를 참조해 주세요.
var myApp = angular.module('myApp', []);
//provider style, full blown, configurable version
myApp.provider('helloWorld', function() {
this.name = 'Default';
this.$get = function() {
var name = this.name;
return {
sayHello: function() {
return "Hello, " + name + "!"
}
}
};
this.setName = function(name) {
this.name = name;
};
});
//hey, we can configure a provider!
myApp.config(function(helloWorldProvider){
helloWorldProvider.setName('World');
});
function MyCtrl($scope, helloWorld, helloWorldFromFactory, helloWorldFromService) {
helloWorld.sayHello(),
}
언급URL : https://stackoverflow.com/questions/13595469/how-to-override-exceptionhandler-implementation
'programing' 카테고리의 다른 글
MAMP에서 작업할 때 워드프레스 테마에 이미지를 추가하는 방법 (0) | 2023.04.01 |
---|---|
C#의 연결 문자열에 지정된 Mongo 데이터베이스를 가져오는 방법 (0) | 2023.03.27 |
Angular2 - 템플릿에서 개인 변수에 액세스할 수 있어야 합니까? (0) | 2023.03.27 |
JSON 파일을 해석하려면 어떻게 해야 하나요? (0) | 2023.03.27 |
SCRIPT5009: 'JSON'은 정의되어 있지 않습니다. (0) | 2023.03.27 |