Как внедрить мой сервис в ExceptionHandler

Я использовал свой сервис в других местах, введенных автоматически с помощью угловых 2. Я хочу использовать тот же сервис в ExceptionHandler. Но сервис не публикует данные на сервер. Я прошел отладчик, и мой сервис вызывает.

class MyExceptionHandler extends ExceptionHandler {
  rbJSLogger: RBLoggerService;

  constructor() {
    super(null,null);
    var injector = ReflectiveInjector.resolveAndCreate([
      RBLoggerService,
      JSONP_PROVIDERS,
      Http,
      ConnectionBackend,
      HTTP_PROVIDERS
    ]);
    this.rbJSLogger = injector.get(RBLoggerService);
  }
  call(error, stackTrace = null, reason = null){
    // console.error(stackTrace);
    this.rbJSLogger.searchBy("asd");
  }
}

Ответы на вопрос(1)

Решение Вопроса

Обновить ExceptionHandler был переименован вErrorHandler https://stackoverflow.com/a/35239028/217408

orgiginal

Этот код

var injector = ReflectiveInjector.resolveAndCreate([...]);

создает нового независимого инжектора, который ничего не знает об услугах, предоставляемых в ваших приложениях Angular.

Возможно, вы захотите ввести инжектор, используемый Angular в вашем приложении, как

class MyExceptionHandler extends ExceptionHandler {
  rbJSLogger: RBLoggerService;

  constructor(injector:Injector) {
    super(null,null);
    this.rbJSLogger = injector.get(RBLoggerService);
  }
  call(error, stackTrace = null, reason = null){
    // console.error(stackTrace);
    this.rbJSLogger.searchBy("asd");
  }
}

или просто

class MyExceptionHandler extends ExceptionHandler {
  rbJSLogger: RBLoggerService;

  constructor(private rbJSLogger:RBLoggerService) {
    super(null,null);
  }
  call(error, stackTrace = null, reason = null){
    // console.error(stackTrace);
    this.rbJSLogger.searchBy("asd");
  }
}
 Arturs Soms03 июн. 2016 г., 11:46
Спасибо, я использовал второй вариант.
 Günter Zöchbauer03 июн. 2016 г., 11:47
Если нет особых требований, то 2-й вариант определенно является подходящим вариантом, но я не был уверен в вашем вопросе об этом.

Ваш ответ на вопрос