Angular Material 之 Get Started

2,163 阅读3分钟

一、 安装 Angular Material

在 Angualr 项目根目录下执行如下命令:

npm install --save @angular/material

安装完成后有如下提示:

install angular material

二、安装 Aniamtions

因为一些 Angular Material 组件依赖 Angular animations 模块,所以在使用 Angular Material 时需要安装 @angular/animations 模块,否则在使用 Material 时会报如下错误:

Cannot find module '@angular/animations'.

在 Angualr 项目根目录下执行如下命令:

npm install --save @angular/animations

安装完成后有如下提示:

install angular animations

三、导入 Animations 相关 Module

安装完 @angular/animations 后,需要在根模块中导入相关 Module

1. 导入 BrowserAnimationsModule

如果需要显示相关动画效果,如在真实的应用中,需要在根模块中导入 BrowserAnimationsModule

import { BrowserAnimationsModule } from "@angular/platform-browser/animations";

@NgModule({
  ...
  imports: [
    ...
    BrowserAnimationsModule
  ],
  ...
})
export class AppModule { }

2. 导入 NoopAnimationsModule

如果不想添加其他依赖到项目中,如在动画很慢的平台或用于测试时,可以使用 NoopAnimationsModule ,它只是模仿 animations 模块,实际上并没有动画效果。

import { NoopAnimationsModule } from "@angular/platform-browser/animations";

@NgModule({
  ...
  imports: [
    ...
    NoopAnimationsModule
  ],
  ...
})
export class AppModule { }

四、导入 Material Component Module

1. 在根模块中为要使用的每个组件导入 Module

如导入 MdToolbarModule 和 MdIconModule

import {MdToolbarModule, MdIconModule} from '@angular/material';

@NgModule({
  ...
  imports: [
      ...
      MdToolbarModule,
      MdIconModule
  ],
  ...
})
export class AppModule { }

2. 创建一个单独的 Module ,导入在项目中用到的所有 Angular Material 组件;然后可以将该 Module 导入到要使用 Angular Material 组件的模块

import {MdToolbarModule, MdIconModule} from '@angular/material';

@NgModule({
  imports: [MdToolbarModule, MdIconModule],
  exports: [MdToolbarModule, MdIconModule],
})
export class CustomMaterialModule { }

在根模块中导入 CustomMaterialModule

import {CustomMaterialModule} from './custom.material.module';

@NgModule({
  ...
  imports: [
      ...
      CustomMaterialModule
  ],
  ...
})
export class AppModule { }

3. 导入所有的 Angular Material 组件(不建议)

如果不想一一导入 Material 的单个组件,可以直接在跟模块中导入所有 Material 组件

在根模块中导入 MaterialModule

import { MaterialModule } from "@angular/material";

@NgModule({
  ...
  imports: [
    ...
    MaterialModule.forRoot()
  ],
  ...
})
export class AppModule { }

五、引入主题

使用 Material 预置的主题需要在项目中引入主题样式

可用的预置主题有:

  • deeppurple-amber.css
  • indigo-pink.css
  • pink-bluegrey.css
  • pink-bluegrey.css

引入预置主题有两种方式:

1. 在 styles.css 中引入

在顶部添加

@import '~@angular/material/prebuilt-themes/indigo-pink.css';

2. 在 index.html 中引入

在 head 标签下添加

<head>
  ...
  <link href="node_modules/@angular/material/prebuilt-themes/indigo-pink.css" rel="stylesheet">
</head>

更多主题用法请查看 Angular Material Theming Guide

六、手势支持

一些 Material 组件依赖 HammerJS 手势库,如:md-slide-toggle, md-slider, mdTooltip 等,要使用这些组件的全部功能需要在项目中添加 HammerJS 。

1. 安装 HammerJS

在 Angualr 项目根目录下执行如下命令:

npm install --save hammerjs

安装完成后有如下提示:

install hammerjs

2. 导入到项目的根模块

安装完成后,需要将 hammerjs 导入到项目的根模块

...
import 'hammerjs';
...

七、添加 Material Icons

在使用 md-icon 组件时,如果要和官方的 Material Design Icons 一起使用,需要在 index.html 中引入:

<head>
  ...
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
</head>

在使用 md-icon 组件时可以使用官方的 Material Design Icons,如:

<md-icon>settings</md-icon>

icon_settings

多个单词之间用下划线链接

<md-icon>zoom_in</md-icon>

icon_zoom_in

更多 Material Design Icons 用法请查看 Material Icons Guide