角度4中的典型根模块看起来像这样
lhs == false
在文档中,提到“在上面简单根模块的示例中,应用程序模块需要来自该浏览器模块的材料。要访问该材料,请将其添加到@NgModule元数据导入中。”
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 { }
我的问题是:
“应用程序模块需要来自该浏览器模块的材料”是什么意思?
此导入imports: [ BrowserModule ],
与此import { BrowserModule } from '@angular/platform-browser';
之间有何区别?
有人可以帮我理解在根模块中使用imports: [ BrowserModule ],
的目的吗?
答案 0 :(得分:2)
应用程序模块需要什么材料才能实现 浏览器模块“是什么意思?
这可能意味着几件事。首先,它可能意味着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模块无关。