将angular/material应用于使用angular-cli创建的项目

以下是使用angular-cli创建的项目并引入Angular Material时所做的记录。
此文章所尝试的angular-cli版本如下。

@angular/cli: 1.3.0
node: 8.1.3
os: darwin x64

@angular/cli:1.3.0
node:8.1.3
操作系统:苹果 x64

最新版的angular-cli目前已经将构建工具从SystemJS更改为Webpack,所以需要注意。

我参考的文章或者资料

公式文件

Angular Material 入门
https://material.angular.io/guide/getting-started

– 有篇关于 Qiita 的文章

通过Angular CLI快速开发Angular2应用程序的入门指南
http://qiita.com/kitfactory/items/c95ca84371670b21f4ac

使用angular-cli和UI框架Angular2-Material构建Angular2应用的教程。

Angular Material 2的引入备忘录
http://qiita.com/shin_hayata/items/9e8f28970012d53be8f1

创建一个用于样本的项目

创建项目

ng new angular-material-handson --routing

我們打算使用Angular的路由功能,因此在執行時添加了選項routing以自動生成路由模塊。

开始

按照公式的「入门指南」步骤,开始使用AngularMaterial进行引入。

Angular Material 的安装

请按照官方文档的步骤,在 npm 中安装 @angular/material 包。同时,也安装 CDK 这个库。

npm install --save @angular/material @angular/cdk

Angular动画的安装

安装额外的Angular模块。
似乎需要安装@angular/animations来实现一些Material的过渡效果。

npm install --save @angular/animations
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // 追加

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    BrowserAnimationsModule // 追加
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

导入Angular Material组件

引入MaterialModule。
在本示例中,我们只使用app.component,但如果要从其他组件中使用,还需要一起编写exports。

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialModule } from '@angular/material'; // 追加

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    BrowserAnimationsModule,
    MaterialModule // 追加
    ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

CSS的加载

在使用Angular-cli创建的项目中,通过在src/style.css中导入基础样式,可以将主题应用到整个项目中。

/* You can add global styles to this file, and also import other style files */
@import "~@angular/material/prebuilt-themes/indigo-pink.css"; /* 追加 */

安装hammer.js

安装所需的手势支持包。
hammer.js是在AngularMaterial中,用于支持智能手机和平板电脑上的触摸手势的必要库。

npm install --save hammerjs
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialModule } from '@angular/material';
import 'hammerjs'; // 追加

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    BrowserAnimationsModule,
    MaterialModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

安装素材图标

我会添加材料图标。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>AngularMaterialHandson</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> <!-- 追加 -->
</head>
<body>
  <app-root></app-root>
</body>
</html>

我們實際試一試

通过这些步骤,您可以使用一套完整的Material组件。

添加工具栏

将app.component.html和app.component.css文件更改为以下内容

<md-toolbar color="primary">
  <span>Toolbar</span>
  <a md-button routerLink=".">Menu</a>
  <a md-button routerLink=".">setting</a>
  <span class="remaining-space"></span>
  <md-icon class="icon">favorite</md-icon>
  <md-icon class="icon">delete</md-icon>
</md-toolbar>

<h1>てすと</h1>

<router-outlet></router-outlet>
.icon {
  padding: 0 14px;
}

.remaining-space {
  flex: 1 1 auto;
}

当运行 npm start 命令启动开发服务器并确认 http://localhost:4200 后…
将显示以下工具栏。

スクリーンショット 2017-08-14 15.02.03.png

这就是以上内容。

广告
将在 10 秒后关闭
bannerAds