角4根模块“进口”和在角度4“进口”
问题描述:
典型根模块看起来像这样角4根模块“进口”和在角度4“进口”
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
在本文档中,提到“在单根模块的上面的例子,该应用程序模块需要该浏览器模块中的材料。要访问该材料,请将其添加到@NgModule元数据导入中,如下所示。“ imports: [ BrowserModule ],
我的问题是:
什么是“应用模块需要的材料从该浏览器模块中的”是什么意思?
这个进口import { BrowserModule } from '@angular/platform-browser';
和这个imports: [ BrowserModule ],
有什么区别?
有人能帮我理解在根模块中使用imports
的目的吗?
答
“应用程序模块需要该 浏览器模块中的材料”是什么意思?
这可能意味着几件事。首先,这可能意味着browser
模块定义了一些需要提供的提供者是全局注入器。它也可能意味着在根模块中定义的组件将使用来自browser
模块的一些可申报类型。其实,如果你看看BrowserModule
定义你会认为这是两个:
@NgModule({
// global providers
providers: [
BROWSER_SANITIZATION_PROVIDERS,
{provide: ErrorHandler, useFactory: errorHandler, deps: []},
{provide: EVENT_MANAGER_PLUGINS, useClass: DomEventsPlugin, multi: true},
...
],
// declarable types - components/directives/pipes
// declared in common and application modules
exports: [CommonModule, ApplicationModule]
})
export class BrowserModule {
我建议你阅读Avoiding common confusions with modules in Angular
是什么这个进口
import { BrowserModule } from '@angular/platform-browser';
而这一次imports: [ BrowserModule ]
之间的区别不同的是,前者导入ESM
模块,后者导入Angular模块。 ESM/Typescript modules与Angular模块无关。
https://angular.io/guide/ngmodule-faq –
[angular2 - '导入'和'导出'如何在Angular2模块中工作?](https://*.com/questions/41281780/angular2-how-do-imports-and-exports-work-in-angular2-modules) – Milad
AppModule =应用程序模块.... BrowserModule嵌入在此中。顶部的导入用于定位它的位置 – JGFMK