2016-10-16 2 views
0

새로운 @ngModules에 대해서는 약간 혼동 스럽습니다. 어디에서 가져 오겠습니까?Angular 2 Angular의 모듈과 함께 ngModules을 사용하는 방법

내가 지금 가지고있는 것은 주 앱 모듈, 공유 모듈 및 여러 기능 모듈 (기능을 함께 그룹화하는 더 작은 모듈)입니다.

모든 기능 모듈을 공유 모듈로 가져 오면 공유 모듈을 내 응용 프로그램의 다른 모듈로 전달할 수 있습니다.

내가 직면 한 문제 또는 일반적인 게으름과 관련한 문제는 *ngIf과 같은 공통 지시문을 사용하거나 기능 모듈이나 다른 모듈에서 공통적 인 지시어를 사용해야 할 때, 지시문, http 등등에 접근하기 위해 각 모듈에 각진 모듈.

이제 제 질문은 CommonModule, FormsModule, HttpModule과 같은 필요한 모듈을 최상위 모듈,이 경우에는 기본 응용 프로그램 모듈로 가져올 수 있습니까? 다른 모든 모듈과 다른 지시어, 구성 요소 등을 모든 모듈에서 가져올 필요없이 항상 액세스 할 수있게하십시오. 마치 그들을 가져 와서 최상위 모듈이나 다른 것들로부터 내보내는 것처럼 말입니다.

답변

2

각 기능 모듈을 독립적으로 만들어야합니다. 각 모듈은 범용 구성 요소, 서비스 또는 파이프가있는 공유 모듈을 가져올 수 있으며 CommonModule, FormsModule 등과 같은 일반적인 각도 모듈을 가져올 수 있습니다. 공유 모듈은 사용자의 기능 모듈을 가져 오지 않아야합니다.

앱 모듈은 각 기능 모듈과 공유 모듈을 가져올 수 있습니다.

import { NgModule, CommonModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 

@NgModule({ 
    exports: [CommonModule, FormsModule] 
}) 
export class SharedModule { } 
+0

좋아,하지만 주요 응용 프로그램에 공유 기능 모듈을 가져 오는 경우 기능 모듈은 공유 모듈에 액세스 않습니다

여기에 공유 모듈 파일의 기본 예제가? 아니면 모든 기능 모듈에도 공유 모듈을 가져와야합니까?왜냐하면 경로를 가져올 때 올바른 이름과 경로가 있지만 공유 모듈을 찾을 수 없기 때문에이 작업에 어려움을 겪고있었습니다. – Chrillewoodz

+0

예. 공유 모듈을 각 기능 모듈로 가져와야합니다. – DerekMT12

+0

그건 드래그 .. 우르르. – Chrillewoodz

2

NgModule documentation, 특히 shared 모듈을 읽어 보시기 바랍니다. 당신이 수출 다른 모듈을 다시 할 수 SharedModule에 기본적으로

:

import { NgModule }   from '@angular/core'; 
import { CommonModule }  from '@angular/common'; 
import { FormsModule }   from '@angular/forms'; 
import { AwesomePipe }   from './awesome.pipe'; 
import { HighlightDirective } from './highlight.directive'; 
@NgModule({ 
    imports:  [ CommonModule ], 
    declarations: [ AwesomePipe, HighlightDirective ], 
    exports:  [ AwesomePipe, HighlightDirective, 
        CommonModule, FormsModule ] 
}) 
export class SharedModule { } 

때문에 당신이있는 ShareModule을 가져 와서는 CommonModuleFormsModule 앱을 통해 가져올 필요가 없습니다 수출 수 그들을 가져올 수도 있습니다. 우리의 응용 프로그램을 검토하는 동안

, 우리는 많은 구성 요소 요구 SharedModule 지시어는 CommonModule에서 NgIfNgFor를 사용하고 [(ngModel)],와 구성 요소 속성에 FormsModule의 지시를 결합하는 것으로 나타났습니다. 이러한 구성 요소를 선언하는 모듈은 CommonModule, FormsModuleSharedModule을 가져와야합니다.

우리는 SharedModule 재수출 CommonModuleSharedModule의 수입이 무료로 CommonModuleFormsModule를 얻을 수 있도록 FormsModule을함으로써 반복을 줄일 수 있습니다.

관련 문제