event.clone ({}) завершает работу функции ngx-transalation в angular 6 - PullRequest
0 голосов
/ 12 марта 2020

Я использовал ngx-перевод в моем проекте angular.

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    LayoutModule,
    GlobalModule,
    OverlayModule,
    BrowserModule,
    BrowserAnimationsModule,
    AppRoutingModule,
    NgxCaptchaModule,
    ReactiveFormsModule,
    StorageServiceModule,
    FormsModule,
    BackButtonDisableModule.forRoot({
      preserveScrollPosition: true
    }),
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: createTranslateLoader,
        deps: [HttpClient]
      }
    }),
    HttpClientModule,
    DataTablesModule,
    DeviceDetectorModule.forRoot(),
    ToastrModule.forRoot(),
    NgxCurrencyModule,
    HttpClientXsrfModule.withOptions({
      cookieName: 'XSRF-TOKEN',
      headerName: 'X-CSRF-TOKEN'
    })
  ],
  providers: [
    ...INTERCEPTORS,
    {
      provide: LocationStrategy, useClass: HashLocationStrategy,
    },
    {
      provide: ErrorHandler, useClass: GlobalErrorHandler
    },
    DataService,
    AccountDataService,
    MobilepayeeDataService,
    CreditcarddataService,
    BillerDataService,
    PayetomobiledataserviceService,
    UserlimitDataService,
    FundtransferdataserviceService,
    FixeddepositdataService,
    MobilebillerService,
    WealthdataService,
    ScheduleDataService,
    {
      provide: HAMMER_GESTURE_CONFIG,
      useClass: MyHammerConfig,
    }
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

Я изменяю ответ на перехватчике, используя метод event.clone ({}).

intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    request = request.clone({
      setHeaders: {
        token: `${this.auth.getToken()}`,
        sequenceid: `${Number(this.auth.getSequenceId())}`,
        version: VERSION,
        tabID: sessionStorage.getItem('tabID')
      }
    });

    return next.handle(request).pipe(
      map(event => {
          if (event instanceof HttpResponse) {

            //if i comment the below event clone ngx-translation works fine
            event = event.clone({
                body: JSON.parse(this.doSomething(event.body)),
            });

            if (event['headers'].get('token') && this.auth.getToken()) {
              this.auth.updateToken(event['headers'].get('token'));
              this.auth.updateSequenceId(event['headers'].get('sequenceid'));
            }
            return event;
          }
        },
        error => {
          this.auth.logout();
        }),
      catchError((error: HttpErrorResponse) => {
        return throwError(error);
      })
    );
  }

Если я прокомментирую event.clone ({}) ngx-перевод работает нормально.event.clone ({}) заставит мой ngx-перевод работать не будет.

Кто-нибудь может описать, как решить эту проблему , это будет очень полезно. Заранее спасибо.

...