如何在子组件中导入模块 [Angular]
How to import a module inside of a sub-component [Angular]
所以在我之前的问题中,我询问了 material UI 库 Angular。遇到 @angular/material
,这似乎已经足够好了,但我在通过子模块实现它时遇到了麻烦(抱歉,如果我的术语不正确。我是 Angular 的新手)。
这是源代码:
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MapModule } from './components/map/map.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
MapModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
map.module.ts
import { NgModule } from '@angular/core';
import { MapComponent } from './map.component';
import { MatCardModule } from '@angular/material/card'
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
declarations: [
MapComponent
],
imports: [
BrowserModule,
MatCardModule
],
providers: [],
bootstrap: [MapComponent]
})
export class MapModule { }
这里的问题是,即使我能够访问 @angular/material
文档中提到的 <mat-card>
,它也没有出现在我屏幕上的任何地方。
可能是什么问题?
您创建了一个用于导入所有 material 模块的模块。对于你的情况,它是垫卡。
material.module.ts
import {NgModule} from '@angular/core';
import {MatCardModule} from '@angular/material/card';
// import all the required material modules
@NgModule({
exports: [
MatCardModule,
]
})
export class MaterialModule {}
并在
中导入
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MaterialModule } from './material.module.ts';
import { MapModule } from './components/map/map.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
MapModule,
MaterialModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
查看文件中的用法
<mat-card>Sample</mat-card>
创建一个单独的 material 模块是最佳做法。
要使其在全球范围内运行,您需要将 MatCardModule 导入 AppModule。但是你在这里问的是有一个子模块 MapModule,导入和导出 MatCardModule 然后你需要主模块 AppModule 来导入 MapModule 本身。
MatCardModule -> MapModule -> AppModule
地图模块
import { NgModule } from '@angular/core';
import { MatCardModule } from '@angular/material/card'
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
declarations: [
],
imports: [
BrowserModule,
MatCardModule
],
providers: [
{provide: MatCardModule}
],
bootstrap: [],
exports: [
MatCardModule
]
})
export class MapModule { }
AppModule
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { MapModule } from './map/map.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
MapModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这是一个工作示例:https://stackblitz.com/edit/angular-10-material-module-jawrve?file=src%2Fapp%2Fapp.module.ts
所以在我之前的问题中,我询问了 material UI 库 Angular。遇到 @angular/material
,这似乎已经足够好了,但我在通过子模块实现它时遇到了麻烦(抱歉,如果我的术语不正确。我是 Angular 的新手)。
这是源代码:
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MapModule } from './components/map/map.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
MapModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
map.module.ts
import { NgModule } from '@angular/core';
import { MapComponent } from './map.component';
import { MatCardModule } from '@angular/material/card'
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
declarations: [
MapComponent
],
imports: [
BrowserModule,
MatCardModule
],
providers: [],
bootstrap: [MapComponent]
})
export class MapModule { }
这里的问题是,即使我能够访问 @angular/material
文档中提到的 <mat-card>
,它也没有出现在我屏幕上的任何地方。
可能是什么问题?
您创建了一个用于导入所有 material 模块的模块。对于你的情况,它是垫卡。
material.module.ts
import {NgModule} from '@angular/core';
import {MatCardModule} from '@angular/material/card';
// import all the required material modules
@NgModule({
exports: [
MatCardModule,
]
})
export class MaterialModule {}
并在
中导入app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MaterialModule } from './material.module.ts';
import { MapModule } from './components/map/map.module';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
BrowserAnimationsModule,
MapModule,
MaterialModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
查看文件中的用法
<mat-card>Sample</mat-card>
创建一个单独的 material 模块是最佳做法。
要使其在全球范围内运行,您需要将 MatCardModule 导入 AppModule。但是你在这里问的是有一个子模块 MapModule,导入和导出 MatCardModule 然后你需要主模块 AppModule 来导入 MapModule 本身。
MatCardModule -> MapModule -> AppModule
地图模块
import { NgModule } from '@angular/core';
import { MatCardModule } from '@angular/material/card'
import { BrowserModule } from '@angular/platform-browser';
@NgModule({
declarations: [
],
imports: [
BrowserModule,
MatCardModule
],
providers: [
{provide: MatCardModule}
],
bootstrap: [],
exports: [
MatCardModule
]
})
export class MapModule { }
AppModule
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { MapModule } from './map/map.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
MapModule
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
这是一个工作示例:https://stackblitz.com/edit/angular-10-material-module-jawrve?file=src%2Fapp%2Fapp.module.ts