我试图同时使用ngx-restangular 1.0.11& @ ngx-translate 7.0.0在同一个项目中。但是,我只能让他们中的一个一次工作。我将日志语句放在导入期间调用的每个工厂中,并且一次只调用其中一个。我感到困惑!是否有人在Angular 4中成功使用过两者?
这是一个试图将它们都包括在内的掠夺者。 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 {}
感谢您的帮助!
答案 0 :(得分:0)
问题一定与缓存或某种方式构建有关。我最后留下了restangular并在我的项目中翻译代码,最终他们都开始工作了。它不像重新启动ng serve
(我正在使用angular-cli)或刷新我的浏览器那么简单。我不确定最终会触发什么修复它,但问题的答案是肯定的,它们都可以在同一个项目中工作!