我想在同一个项目中同时使用ngx-restangular 1.0.11 & @ ngx-translate 7.0.0。但是,我一次只能让他们中的一个去工作。我在导入期间调用的每个工厂中都放置了日志语句,并且一次只能调用其中的一个。我很困惑!有没有人成功使用过Angular 4?ngx-restangular和@ ngx-translate/core可以一起工作吗?
这是一个试图包括他们两个的蹲伏者。 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 {}
感谢您的帮助!