2017-02-07 9 views
1

最近Angle 2でプレイを開始しましたが、これまでの経験は素晴らしいです。私はng1Reactについても良い経験をしています。だから、これは一般的な質問や混乱の詳細です。私はこれが他の多くの人々を助けると確信しているだけでなく、私は実際にこれに直接的な答えを見つけていない。すべてのモジュールで角度コンポーネントをインポートできるようにする

それでは、私は、私はいくつかのコンポーネントが登録されていこのmoduleprotected.module.tsを持っているとしましょう。したがって、プリミティブな指示文ngFor, ngIfを使用するには、特定のモジュールにCommonModuleをインポートする必要がありますが、これをメインエントリモジュール、つまりapp.module.tsにインポートする必要があります。

app.module.tsので

import { BrowserModule } from '@angular/platform-browser'; 
import { NgModule } from '@angular/core'; 
import { FormsModule } from '@angular/forms'; 
import { HttpModule } from '@angular/http'; 
import { CommonModule } from '@angular/common'; 
import { AlertModule } from 'ng2-bootstrap'; 
import { LayoutModule } from './layout/layout.module'; 
import { UsersModule } from './users/users.module'; 
import { AppRoutingModule } from './app-routing.module'; 
import { AppComponent } from './app.component'; 
import { ProtectedModule } from './protected/protected.module'; 
import { PageNotFoundComponent } from './shared/components/not-found.component'; 

@NgModule({ 
    declarations: [ 
    AppComponent, 
    PageNotFoundComponent 
    ], 
    imports: [ 
    BrowserModule, 
    FormsModule, 
    CommonModule, 
    HttpModule, 
    AlertModule.forRoot(), 
    LayoutModule, 
    ProtectedModule, 
    UsersModule, 
    AppRoutingModule, 
    ], 
    providers: [], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { } 

protected.module.ts

import { NgModule } from '@angular/core'; 
import { CommonModule } from '@angular/common'; 
import { HomeComponent } from './home/home.component'; 
import { ProtectedRoutingModule } from './protected-routing.module'; 

@NgModule({ 
    imports: [ProtectedRoutingModule, CommonModule], 
    declarations: [HomeComponent], 
    exports: [HomeComponent] 
}) 
export class ProtectedModule { } 

だけグローバルいくつかのモジュールをインポートする方法があった場合、私が持っていた混乱でしたapp.moduleで、私たちが最終的に持っているすべてのモジュールにわたってそのモジュールを使用したいのであれば?このようにして私はそれを別の場所にインポートする必要があると私は見直しのようです。または、私はここに完全にいくつかのポイントを欠いていますか?

は、事前にありがとうと私は本当にこれが私のためにして他の人々にも同様に有益であろう願っています。

+0

'app.module.ts'の最初のことは、あなたがそれを削除できるように' CommonModule'をインポートする必要はありません。他のことは私はあなたの質問を完全に理解していません。おそらくあなたを助けることができるagular.ioで 'sharedModule'を検索してください... – micronyks

+0

@micronyks' common.module'を 'app.module.ts'から削除すると、エラーがスローされます。 – Umair

+0

@micronyks私が 'moduleA'と' moduleB'を持っているとしましょう。両方でいくつかのモジュールを使いたいのであれば、 'app.module.ts'にそれを追加して、' moduleA' 'moduleB'または個別に' moduleA'と 'moduleB'にインポートする必要がありますか? – Umair

答えて

6

私はあなたが最高のshared module

あなたの他のmodules(私の経験では、通常feature modules)を添えているはずだと思いますが、すべてこのshared moduleをインポートすることができます。
ドキュメントで説明したように、SharedModuleに共通の依存関係を再エクスポートさせることで、繰り返しのインポート文を減らすことができます。代わりに、それらの同じモジュールをインポートすると、あなたの他のモジュールで

import { NgModule } from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { HttpModule } from '@angular/http'; 
import { FormsModule } from '@angular/forms'; 

@NgModule({ 
    exports: [BrowserModule, FormsModule, HttpModule] 
}) 
export class SharedModule { } 

そして:CommonModule、一例として、FormsModule

は、共有モジュールだけ再輸出BrowserModuleFormsModuleHttpModuleこのようなを持つことができます以下のようにSharedModuleをインポートしてください。 SharedModuleをインポートするすべてのモジュールは、明示的に再びそれをインポートせずにSharedModuleからをエクスポートしすべてのものを使用することができます。

import { NgModule } from '@angular/core'; 
import { SharedModule } from './path_to_shared_module/shared.module'; 
... 

@NgModule({ 
    imports: [SharedModule, ...], 
    ... 
}) 
export class OtherModule { } 
+0

編集していただきありがとうございます! –

+0

ありがとうございます。私はこれについて知らなかった。 – Umair

関連する問題