首页 > 解决方案 > 将ng2-translate与jhipster一起使用,属性“解析器”在“TranslateService”类型中是私有的,但在“TranslateService”类型中不是私有的

问题描述

我正在使用 angular-cli 作为 Jhipster 的客户端,当我尝试构建我的项目时,我在 Translate 模块上遇到了问题,我尝试升级到 ngx-translate 但我仍然遇到同样的问题。

这是我得到的错误:

“TranslateService”不可分配给“TranslateService”类型的参数。

shared-common.module.ts :

    import { NgModule, Sanitizer } from '@angular/core';
import { Title } from '@angular/platform-browser';
import { TranslateService } from 'ng2-translate';
import { AlertService } from 'ng-jhipster';
import {
    CarcheckappSharedLibsModule,
    JhiLanguageHelper,
    FindLanguageFromKeyPipe,
    JhiAlertComponent,
    JhiAlertErrorComponent
} from './';

export function alertServiceProvider(sanitizer: Sanitizer,
                                     translateService: TranslateService) {
    // set below to true to make alerts look like toast
    const isToast = false;
    return new AlertService(sanitizer, isToast, translateService);
}

@NgModule({
    imports: [
        CarcheckappSharedLibsModule
    ],
    declarations: [
        FindLanguageFromKeyPipe,
        JhiAlertComponent,
        JhiAlertErrorComponent
    ],
    providers: [
        JhiLanguageHelper,
        {
            provide: AlertService,
            useFactory: alertServiceProvider,
            deps: [Sanitizer, TranslateService]
        },
        Title
    ],
    exports: [
        CarcheckappSharedLibsModule,
        FindLanguageFromKeyPipe,
        JhiAlertComponent,
        JhiAlertErrorComponent
    ]
})
export class CarcheckappSharedCommonModule {}

标签: angularjhipsterngx-translateng2-translate

解决方案


您使用了错误的软件包。

import { TranslateService} from '@ngx-translate/core';

AlertService期望TranslateService@ngx-translate/core您不能将其与另一个交换。如果你想使用ng2-translate你必须创建你自己的AlertService.


推荐阅读