在根模块(app.module.ts
)中,
@NgModule({
declarations: [
AppComponent,
HomeComponent,
DirectoryComponent,
FilterPipe,
LoggingService
],
imports: [
FormsModule,
BrowserModule,
HttpClientModule,
routing
],
providers: [],
bootstrap: [AppComponent]
})
imports:[..]
表示,根模块导入其他模块。
declarations:[..]
表示由根模块创建和拥有的components / services / pipes / ..
providers
和bootstrap
表示什么?
答案 0 :(得分:1)
bootstrap只是一个从中挖掘出根组件的数组。在您的情况下,根目录为AppComponent
,其中创建根组件的实例并将其插入由组件选择器标识的元素标记中。
AppComponent
选择器(在您的情况下和大多数文档示例中)都是app-root
,因此Angular会在index.html中查找<app-root>
标记,如下所示:
<body>
<app-root></app-root>
</body>
提供者通常是单例(一个实例)对象,其他对象可以通过依赖注入(DI)访问。提供程序描述了注入器应该实例化给定标记的内容,因此它描述了如何创建某个标记的对象。 如果您计划多次使用对象,例如在不同组件中使用Http服务,则可以请求该服务的相同实例(重用它)。您可以在DI的帮助下通过提供DI为您创建的相同对象的引用来实现。
@Component){
..
providers: [Http]
}
..instead of creating new object every time:
@Component){}
class Cmp {
constructor() {
// this is pseudo code, doens't work
this.http = new Http(...options);
}
}
提供商是Dependency Injection背后的一般概念。这是关于bootstrap and providers的一个非常好的例子。