2017-06-19 65 views
0

我想在同一个项目中同时使用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 {} 

感谢您的帮助!

回答

0

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

相关问题