ngx-restangular和@ ngx-translate / core能一起工作吗?

时间:2017-06-19 06:32:17

标签: angular restangular ngx-translate

我试图同时使用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 {}

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题一定与缓存或某种方式构建有关。我最后留下了restangular并在我的项目中翻译代码,最终他们都开始工作了。它不像重新启动ng serve(我正在使用angular-cli)或刷新我的浏览器那么简单。我不确定最终会触发什么修复它,但问题的答案是肯定的,它们都可以在同一个项目中工作!