2017-08-29 34 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

相关问题