我正在尝试在同一个项目中同时使用 ngx-restangular 1.0.11 和 @ngx-translate 7.0.0。但是,我一次只能让其中一个工作。我将日志语句放在导入期间调用的每个工厂中,并且一次只调用其中一个。我很困惑!有没有人在 Angular 4 中成功使用过这两种方法?
这是一个试图将它们都包含在内的 plunker。https://plnkr.co/edit/ecefQcRHV3q5UTZa5H8q?p=preview。如果不包括另一个,则每个都可以工作,但是通过将它们都放在应用程序中,只有一个可以工作。(我还没有找到一种一致的方法来让它切换到另一个——仅仅注释掉一个正在工作的并不总是让另一个开始工作)
这是我的app.ts
文件(模块文件):
import { Component, NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule, BaseRequestOptions, Http } from '@angular/http';
import { RouterModule } from '@angular/router';
import { MockBackend } from '@angular/http/testing';
import { RestangularModule } from 'ngx-restangular';
import { MissingTranslationHandler, TranslateModule, TranslateLoader } from '@ngx-translate/core';
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
import { App } from './app.component.ts';
import { routes } from './app.routes.ts';
import { MyMissingTranslationHandler } from './my-missing-translation-handler';
export function HttpLoaderFactory(http: Http) {
console.log("in translator config");
return new TranslateHttpLoader(http, './assets/i18n/', '.json');
}
export function RestangularConfigFactory (RestangularProvider) {
console.log("in restangular config");
RestangularProvider.setRestangularFields({
id: "_id"
});
}
@NgModule({
declarations: [App],
imports: [
BrowserModule,
HttpModule,
RouterModule.forRoot(routes),
RestangularModule.forRoot(RestangularConfigFactory),
TranslateModule.forRoot({
missingTranslationHandler: {
provide: MissingTranslationHandler,
useClass: MyMissingTranslationHandler
},
loader: {
provide: TranslateLoader,
useFactory: HttpLoaderFactory,
deps: [Http]
}
}),
],
providers: [],
bootstrap: [App]
})
export class AppModule {}
谢谢你的帮助!