2017-08-29 91 views
2

我已經習慣了Angular 2,但我有幾個關於app.module.ts文件的問題。app.module.ts文件提供什麼服務?我應該在裏面做些什麼?

  • 爲什麼我必須做進口這個文件,因爲我會在app.components.ts文件再次做 的輸入。

例如:我 導入我的自定義管道,然後我又不得不進口在我 app.components.ts文件

import { FirstPipePipe } from './first-pipe.pipe'; 

@NgModule({ 
    declarations: [ 
     AppComponent, 
     SecondComponent, 
     ThirdComponent, 
     FirstComponent, 
     FirstPipePipe 
    ], 
    imports: [ 
     BrowserModule, RouterModule.forRoot(appRoutes), HttpModule 
    ], 
    providers: [FetchDataService], 
    bootstrap: [AppComponent] }) 

然後我有

imports: [ 
      BrowserModule, RouterModule.forRoot(appRoutes), HttpModule 
     ], 

爲什麼我要導入一些類而其他類不是?

爲什麼這裏的供應商,因爲他們再一次出現在app.component.ts

providers: [FetchDataService] 

基本上,我有我的app.component.ts文件重寫一切。

app.module.ts的用途是什麼?

+0

讀[避免常見的混亂與角模塊(https://blog.angularindepth.com/避免 - 常見的混淆與模塊在角 - ada070e6891f) –

+1

我有一個YouTube視頻,這裏解釋這個:https://www.youtube.com/watch?v=ntJ-P-Cvo7o – DeborahK

+0

@DeborahK tnx視頻。 – masterach

回答

2

模塊是一種組織和分離你的代碼的方式。你可以有多個模塊並延遲加載一些模塊。

您可以將任何其他模塊導入imports部分。您在declarations中聲明瞭任何組件。在該模塊的路由中使用的任何組件必須在該模塊中聲明。如果組件在另一個模塊中使用,則只能在其他模塊中列出它們。

而且您在providers部分提供您的服務。

模塊還有助於控制您的依賴注入...您可以在組件級別或模塊級別使用provide服務。在Module級別提供服務將創建一個服務實例以在整個模塊中共享。如果您在組件級別提供服務,那麼它是該組件的唯一實例。最好只在一個級別提供服務以避免混淆 - 無論是在模塊級別還是在組件級別(在您需要的每個組件中)。我發現在大多數情況下,對我自己來說,僅在模塊級別提供服務是最好也是最容易的。與pipes相同,儘管您製作的任何組件/管道仍必須在declarations中聲明。

+0

tnx爲全局和本地服務解釋...因此,基本上app.module中的導入和聲明是在應用程序權限之間共享的? – masterach

+0

爲什麼我在我的module.ts中提供它時仍然需要在我的本地組件中導入我的服務? – masterach

+1

爲了編譯器的緣故,您必須在組件中導入服務。但是,如果組件中提供了服務,則不需要「提供」該服務。 –

1

app.module.ts的用途是什麼?

  • 是它啓動你的應用程序,並設置鏈接到你的其他模塊

1 -模塊是應用程序的邏輯層。每個模塊都在邏輯上打包,因此人們更容易理解和維護由多個模塊組成的應用程序。 例如,如果你正在做一個豐富的應用程序,你應該有一個的LoginModule,一個AuthenticationModule,等...

2 -您需要導入模塊中的東西,使角知道什麼它將會使用。基本上,你的的LoginModule將需要的角度FormModule,這可能不需要爲AuthenticationModule

3 -在這裏,這導致我們:的AppModule因此應該只導入其他模塊,它是鏈接到並提供將需要的服務全球。您的未來LoginModule將不需要提供的服務,但AuthenticationModule將有一個AuthenticationService很可能會做。

這些都是基本概念,嘗試閱讀官方文檔它提供了很多知識關於這個主題:https://angular.io/guide/ngmodule

相關問題