2017-02-05 8 views
0

저는 3 개의 모듈로 구성된 앵귤러 2 프로젝트를 가지고 있습니다. AppModule, 공유 모듈 및 지연로드 모듈. 둘 다 모듈 (게으른로드 된 및 응용 프로그램) 공유 모듈을 가져올 수 있도록 그들은 둘 다 파이프 등 사용할 수 있습니다 .. 공유 모듈에 의해 제공됩니다. 이것이 가능한가?게으른 로딩 앵귤러 앵귤러 모듈

나는 시도했지만 공유 모듈이 이미로드되었다는 오류 메시지가 나타납니다. 그리고 AppModule에서만로드 할 수 있지만로드 된 모듈은 제공된 요소에 액세스 할 수 없습니다.

각도 모듈을 오해하고 있습니까?

답변

0

그래, 당신이 게으르고 비 지연 모듈 모두에 대해 공유 NgModule을 사용할 수 있습니다

응용 프로그램/공유/shared.module.ts

import { NgModule } from '@angular/core'; 
import { MustSharedService } from './must-shared.service'; 

@NgModule({ 
    providers: [MustSharedService] 
}) 
export class SharedModule {} 

응용 프로그램은/을 app.module.ts

import { SharedModule } from './shared/shared.module'; 

@NgModule({ 
    imports: [ 
    SharedModule, 
    ... 
    ], 
}) 
export class AppModule {} 

응용 프로그램/지연/lazy.module.ts

거기에서 어떤 서비스, 예를 들어, 당신은 SharedModule에서 제공하는 2 모듈에서 사용할 수 있습니다.

참조하십시오 내가 [이 문서]를 참조하고 싶습니다 https://plnkr.co/edit/L2ypUQZiltSPXnLlxBoa?p=preview

+0

이 데모 (https://angular.io/docs/ts/latest/cookbook/ngmodule-faq.html#!#q- why-bad)는 SharedModule에서 서비스를 제공하는 것이 좋지 않다는 것을 지적했습니다. 이렇게하면 AppModule과 LazyModule은 MustSharedService의 다른 인스턴스를 가지게 될 것이고, 이것은 아마도 당신이 원하는 것이 아닙니다. – Stephanie