我安装了Angular Material Design。现在我尝试在app.module.ts
文件中添加它:
import { MaterialModule } from '@angular/material';
我应该在章节中解释:imports: []
?加载所有材料实体。
我尝试过:imports: ['MaterialModule']
但不推荐使用
答案 0 :(得分:67)
MaterialModule在版本2.0.0-beta.3中已弃用,并且已在2.0.0-beta.11版本中完全删除。有关详细信息,请参阅此CHANGELOG。请完成重大修改。
重大变化
请完成CHANGELOG我们会得到更多答案!
以下示例 cmd
npm install --save @angular/material @angular/animations @angular/cdk
npm install --save angular/material2-builds angular/cdk-builds
在'app'文件夹
中创建文件(material.module.ts)import { NgModule } from '@angular/core';
import {
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
} from '@angular/material';
@NgModule({
imports: [
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
],
exports: [
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
]
})
export class MaterialModule {}
在app.module.ts上导入
import { MaterialModule } from './material.module';
您的组件html文件
<div>
<mat-toolbar color="primary">
<span><mat-icon>mood</mat-icon></span>
<span>Yay, Material in Angular 2!</span>
<button mat-icon-button [mat-menu-trigger-for]="menu">
<mat-icon>more_vert</mat-icon>
</button>
</mat-toolbar>
<mat-menu x-position="before" #menu="matMenu">
<button mat-menu-item>Option 1</button>
<button mat-menu-item>Option 2</button>
</mat-menu>
<mat-card>
<button mat-button>All</button>
<button mat-raised-button>Of</button>
<button mat-raised-button color="primary">The</button>
<button mat-raised-button color="accent">Buttons</button>
</mat-card>
<span class="done">
<button mat-fab>
<mat-icon>check circle</mat-icon>
</button>
</span>
</div>
添加全局css'style.css'
@import 'https://fonts.googleapis.com/icon?family=Material+Icons';
@import '~@angular/material/prebuilt-themes/indigo-pink.css';
你的组件css
body {
margin: 0;
font-family: Roboto, sans-serif;
}
mat-card {
max-width: 80%;
margin: 2em auto;
text-align: center;
}
mat-toolbar-row {
justify-content: space-between;
}
.done {
position: fixed;
bottom: 20px;
right: 20px;
color: white;
}
如果任何人未获得输出,请使用以下说明
而不是上面的接口(material.module.ts)你也可以在app.module.ts中直接使用下面的代码。
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MdButtonModule, MdCardModule, MdMenuModule, MdToolbarModule, MdIconModule, MatAutocompleteModule, MatInputModule,MatFormFieldModule } from '@angular/material';
所以这种情况你不想导入
import { MaterialModule } from './material.module';
app.module.ts中的
答案 1 :(得分:9)
如果要导入所有材料模块,请创建自己的模块,即material.module.ts
,并执行以下操作:
import { NgModule } from '@angular/core';
import * as MATERIAL_MODULES from '@angular/material';
export function mapMaterialModules() {
return Object.keys(MATERIAL_MODULES).filter((k) => {
let asset = MATERIAL_MODULES[k];
return typeof asset == 'function'
&& asset.name.startsWith('Mat')
&& asset.name.includes('Module');
}).map((k) => MATERIAL_MODULES[k]);
}
const modules = mapMaterialModules();
@NgModule({
imports: modules,
exports: modules
})
export class MaterialModule { }
&#13;
然后将模块导入app.module.ts
答案 2 :(得分:9)
将所有Angular Material模块导入Angular 9。
在your_project / src / app /目录中创建material.module.ts文件,然后粘贴此代码。
SERVICE_CONTROL_DEVICEEVENT
答案 3 :(得分:7)
重大更改:
不再可以通过“ @ angular / material”导入组件。采用 各个辅助入口点,例如 @ angular / material / button。
这意味着:
import { MatInputModule, MatCardModule } from "@angular/material";
成为:
import { MatInputModule } from "@angular/material/input";
import { MatCardModule } from "@angular/material/card";
答案 4 :(得分:6)
beta3 版本中不推荐使用MaterialModule
,其目标是开发人员只应将他们要使用的内容导入其中,从而改善捆绑包的大小。
开发人员现在有两个选择:
MyMaterialModule
,用于导入/导出应用程序所需的组件,并可由应用程序中的其他(功能)模块导入。以下面的例子为例(摘自material page)
第一种方法:
import {MdButtonModule, MdCheckboxModule} from '@angular/material';
@NgModule({
imports: [MdButtonModule, MdCheckboxModule],
exports: [MdButtonModule, MdCheckboxModule],
})
export class MyOwnCustomMaterialModule { }
然后您可以将此模块导入任何一个模块。
第二种方法:
import {MdButtonModule, MdCheckboxModule} from '@angular/material';
@NgModule({
...
imports: [MdButtonModule, MdCheckboxModule],
...
})
export class PizzaPartyAppModule { }
现在,您可以在 PizzaPartyAppModule
值得一提的是:
BrowserAnimationsModule
进入你的主模块
动画@angular/cdk
添加到他们的package.json
(材料相关性)BrowserModule
之后导入材料模块,如文档所述:无论您使用哪种方法,请务必导入Angular材质 Angular的BrowserModule之后的模块,因为导入顺序很重要 NgModules。
答案 5 :(得分:2)
我正在使用Angular CLI 9.1.4,而我所做的只是运行:
ng add @angular/material
然后安装了所有有角度的材料包,并更新了我的package.json文件。
这是最简单的方法。
答案 6 :(得分:1)
您应该考虑对应用程序的基本材料组件使用SharedModule,然后将需要使用的每个模块导入功能模块。我在媒介上写了一篇文章,解释了如何导入Angular材质,请查看:
https://medium.com/@benmohamehdi/how-to-import-angular-material-angular-best-practices-80d3023118de
答案 7 :(得分:0)
第1步
yarn add @angular/material @angular/cdk @angular/animations
第2步-创建一个包含所有材料UI模块的新文件(/myApp/src/app/material.module.ts)(没有快捷方式,您必须一个个地包含单个模块)
import { NgModule } from '@angular/core';
import {
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
} from '@angular/material';
@NgModule({
imports: [
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
],
exports: [
MatButtonModule,
MatMenuModule,
MatToolbarModule,
MatIconModule,
MatCardModule
]
})
export class MaterialModule {}
第3步-导入新创建的模块并将其添加到您的 app.module.ts
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
import { MaterialModule } from './material.module'; // material module imported
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
MaterialModule // MAteria module added
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
答案 8 :(得分:0)
安装材料并将其添加到Angular项目中
有一种自动/简便的方法将材质添加到Angular项目中。使用Angular CLI的安装示意图,通过运行以下命令来设置Angular Material项目:
ng add @angular/material
ng add命令将另外执行以下配置:
您完成了!现在已将Angular Material配置为在您的应用程序中使用。
详细了解此here
答案 9 :(得分:-1)
Click here to see Error message screenshot
如果您遇到此错误“ compiler.js:2430未捕获的错误:模块'AppModule'导入了意外的指令'MatIcon'。请添加@NgModule批注”
请不要从@ angular / material导入MatIcon。
仅在下面导入: 从“ @ angular / material”导入{MatIconModule};
如何导入角材料?
您可以在以下命令下运行。 ng添加@ angular / material