Переводы не работают с ошибкой компонента angular2 / 6 - PullRequest
0 голосов
/ 23 октября 2018

Во время загрузки приложения я звоню в службу, которая будет загружать основные данные.Если основные данные не загружены из-за проблем с сетью.Затем я перехожу к компоненту ошибки, сохраняя ошибку в локальном хранилище и получая ошибку в компоненте ошибки.В Error.component.html я использую «| translate».Который не работает.Все остальные HTML-файлы работают с переводчиком.

Модуль приложения

export function createTranslateLoader(http: Http) {
    return new TranslateStaticLoader(http, './assets/i18n', '.json');
}


@NgModule({
    declarations: [
        AppComponent
    ],
    imports: [
        // :CORE MODULE: //
        BrowserModule,
        BrowserAnimationsModule,
        HttpClientModule,
        TranslateModule.forRoot(
            {
                provide: TranslateLoader,
                useFactory: (createTranslateLoader),
                deps: [Http]
            }),
        FormsModule,
        CommonModule, //<====added

        //:3RD PARTY MODULE://
        BootstrapModalModule,

        //:APPLICTION MODULES: //
        AppLoadModule, //Startupdata before APP loaded
        AppRoutingModule,
        FooterModule,
        ErrorModule,
        AccessDeniedModule,
        NotFoundModule,
        RouterModule.forRoot([]),
        ToasterModule.forChild(),
    ],
    providers: [
        LoaderService,
        ToasterService,
        StartupService,
        ResponseStatusesService,
        LocalStorageService,
        ApplicationSettingsService,
        LabSelectionService,
        AccountService,
        AuthService,
        AlertService,
        AuthGuard,
        RolesGuard,
        FeaturebasedGuard,
        ErrorLogService,
        {
            provide: ErrorHandler,
            useClass: GlobalErrorsHandler
        },
        {
            provide: HTTP_INTERCEPTORS,
            useClass: AppHttpInterceptor,
            multi: true
        },
        {
            provide: LocationStrategy,
            useClass: HashLocationStrategy
        },
    ],
    exports: [],
    bootstrap: [AppComponent]
})

export class AppModule { }

Модуль загрузки приложения

export function load(appLoadService: AppLoadService) {
  return () => appLoadService.load();
}


@NgModule({
  imports: [HttpClientModule],
  providers: [
    AppLoadService,
    { provide: APP_INITIALIZER, useFactory: load, deps: [AppLoadService], multi: true }

  ]
})
export class AppLoadModule { }

Служба загрузки приложений

 load(): Promise<any> {
        return new Promise(resolve => {
            const promise = this.httpClient.get('assets/settings/config.json')
                .subscribe(
                    res_config => {                       
                        /*=========== AUTH  CALL API - START ===========*/
                        this.httpClient.get('/api/auth')
                            .subscribe(
                                res_auth_context => {
                                    this.storeUserContext(res);
                                    console.log('@auth context loaded step3');

                                    /*=========== LOAD master data ===========*/
                                    this.httpClient.get('/xyz/masterData')
                                        .subscribe(
                                            res => {
                                               
                                                console.log(" master data Loaded");
                                                resolve();
                                            },
                                            err => {
                                                debugger;
                                                this.localStorage.store("error", err);
                                                let router = this.injector.get(Router);
                                                router.navigate(['error']);
                                                resolve();
                                            }
                                        );
                                    /*=========== LOAD Mastre data ===========*/
                                },
                                res_auth_context_error => {
                                    console.log("Auth Call Failed");
                                }
                            );
                        /*=========== AUTH CALL API - END ===========*/

                    },
                    res_config_Error => {
                        console.log("config file NOT  loaded", res_config_Error);
                    }
                );
        });
    }

Модуль маршрутизации приложений

const routes: Routes = [
    {
        path: '',
        children: [
            { path: '', loadChildren: './home/home.module#HomeModule' },
            { path: 'error', loadChildren: './core/error/error.module#ErrorModule' },
            { path: 'accessDenied', loadChildren: './accessDenied/access-denied.module#AccessDeniedModule' },
            { path: 'notfound', loadChildren: './notFound/not-found.module#NotFoundModule' },
            { path: '**', redirectTo: '/notfound' }
        ]
    }

];

@NgModule({
    declarations: [],
    imports: [RouterModule.forRoot(routes)],
    exports: [RouterModule]
})
export class AppRoutingModule { }

Ошибка модуля маршрутизации

const routes: Routes = [
    {
        path: '', component: ErrorComponent
    }
];

@NgModule({
    imports: [RouterModule.forChild(routes)],
    exports: [RouterModule]
})
export class ErrorRoutingModule { }

error.component.html

<p class="m-y text-muted h4">
     <a (click)="logout()" class="text-danger">{{'logout'|translate}} and Re-login</a>
 </p>
<textarea [(ngModel)]='errorMessage' [disabled]="true" rows="10" cols="120"></textarea>

Ошибка модуля

@NgModule({
    imports: [
        CommonModule,
        FormsModule,
        ErrorRoutingModule,
        TranslateModule
    ],
    declarations: [ErrorComponent]
})
export class ErrorModule { }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...