app.module.ts文件用于什么,我应该在其中做什么?

mas*_*ach 10 import angular-services angular-module angular

我已经习惯了Angular 2,但我有一些关于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]    })
Run Code Online (Sandbox Code Playgroud)

然后我有了

imports: [
           BrowserModule, RouterModule.forRoot(appRoutes), HttpModule
         ],
Run Code Online (Sandbox Code Playgroud)

为什么我要导入一些类而不是其他类?

为什么这里的提供者再次出现在 app.component.ts中

providers: [FetchDataService]
Run Code Online (Sandbox Code Playgroud)

基本上,我必须重写app.component.ts文件中的所有内容.

app.module.ts的目的是什么

Tyl*_*ngs 11

模块是组织和分离代码的一种方式.您可以拥有多个模块并延迟加载某些模块.

您将任何其他模块导入该imports部分.

你声明你的任何组件declarations.必须在该模块中声明该模块路由中使用的任何组件.如果组件在另一个模块中使用,那么您只在其他模块中列出它们.

并且您在该providers部分提供您的服务.

模块还可以帮助控制依赖注入...您可以provide在组件级别或模块级别进行服务.在模块级别提供服务,创建要在整个模块中共享的服务实例.如果在组件级别提供服务,则它是该组件的唯一实例.最好只在一个级别提供服务以避免混淆 - 无论是在模块级别还是在组件级别(在您需要的每个组件中).我发现在大多数情况下,对于我自己来说,仅在模块级别提供服务是最好和最简单的.与之相同pipes,尽管您制作的任何组件/管道仍必须在其中声明declarations.


Ale*_*net 8

app.module.ts 的目的是什么?

  • 它是启动您的应用程序,并设置到您的其他模块的链接。

1 -模块是应用程序的逻辑层。每个模块都在那里对事物进行逻辑打包,以便人们更容易理解和维护由多个模块组成的应用程序。例如,如果你正在做一个富应用程序,你应该有一个LoginModule,一个AuthenticationModule等等......

2 -您需要在模块中导入内容,以便 Angular 知道它将使用什么。基本上,您的LoginModule将需要 Angular FormModule,而AuthenticationModule可能不需要

3 -这将我们带到这里:因此AppModule应该只导入它链接到的其他模块,并提供全球需要的服务。您未来的LoginModule不需要提供服务,但是AuthenticationModule很可能需要提供AuthenticationService

这些是基本概念,请尝试阅读官方文档,其中提供了有关此主题的大量知识:https : //angular.io/guide/ngmodule