Angular6新特性之Angular Material


Posted in Javascript onDecember 28, 2018

Angular Material是包含Navigation/Dashboard/Table三种图形类型,这篇文章中将会了解一些其使用的方式。

准备:安装Material

进入到上篇文章创建的demo2,使用ng add进行安装

liumiaocn:demo2 liumiao$ pwd
/tmp/trainings/angualr/demo2
liumiaocn:demo2 liumiao$

安装命令:ng add @angular/material

liumiaocn:demo2 liumiao$ ng add @angular/material
Installing packages for tooling via yarn.
yarn add v1.7.0
[1/4] ? Resolving packages...
[2/4] ? Fetching packages...
[3/4] ? Linking dependencies...
warning " > @angular/material@6.4.0" has unmet peer dependency "@angular/cdk@6.4.0".
[4/4] ? Building fresh packages...
success Saved lockfile.
success Saved 1 new dependency.
info Direct dependencies
└─ @angular/material@6.4.0
info All dependencies
└─ @angular/material@6.4.0
✨ Done in 13.02s.
Installed packages for tooling via yarn.
UPDATE package.json (1374 bytes)
UPDATE angular.json (3785 bytes)
UPDATE src/app/app.module.ts (423 bytes)
UPDATE src/index.html (469 bytes)
UPDATE src/styles.css (165 bytes)
liumiaocn:demo2 liumiao$

确认package的变化

安装之前对package.json做了备份,可以看出此次操作有何变化

liumiaocn:demo2 liumiao$ diff package.json package.json.org
20d19
<   "@angular/material": "^6.4.0",
26,27c25
<   "zone.js": "^0.8.26",
<   "@angular/cdk": "^6.2.0"
---
>   "zone.js": "^0.8.26"
29a28
>   "@angular/compiler-cli": "^6.0.3",
30a30
>   "typescript": "~2.7.2",
32d31
<   "@angular/compiler-cli": "^6.0.3",
47,48c46
<   "tslint": "~5.9.1",
<   "typescript": "~2.7.2"
---
>   "tslint": "~5.9.1"
liumiaocn:demo2 liumiao$

由于diff命令自身的限制,一些没有变化的内容也被列了出来,确认之后发现@angular/material和@angular/cdk是添加的内容

Material Navigation

使用Material 创建Navigation只需要如下的命令即可

创建命令:ng generate @angular/material:material-nav ?name 名称

接下来我们创建一个名为mynav的Material Navigation

liumiaocn:demo2 liumiao$ ng generate @angular/material:material-nav --name mynav
CREATE src/app/mynav/mynav.component.css (129 bytes)
CREATE src/app/mynav/mynav.component.html (948 bytes)
CREATE src/app/mynav/mynav.component.spec.ts (698 bytes)
CREATE src/app/mynav/mynav.component.ts (577 bytes)
UPDATE src/app/app.module.ts (793 bytes)
liumiaocn:demo2 liumiao$

确认selector为app-mynav

liumiaocn:demo2 liumiao$ cat src/app/mynav/mynav.component.ts
import { Component } from '@angular/core';
import { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout';
import { Observable } from 'rxjs';
import { map } from 'rxjs/operators';
@Component({
 selector: 'app-mynav',
 templateUrl: './mynav.component.html',
 styleUrls: ['./mynav.component.css']
})
export class MynavComponent {
 isHandset$: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset)
  .pipe(
   map(result => result.matches)
  );
 constructor(private breakpointObserver: BreakpointObserver) {}
 }
liumiaocn:demo2 liumiao$

替换app.component.html的内容,确认Material Navigation的运行状况

liumiaocn:demo2 liumiao$ cat src/app/app.component.html 
<app-mynav></app-mynav>
liumiaocn:demo2 liumiao$

运行ng serve

liumiaocn:demo2 liumiao$ ng serve
** Angular Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ **
...省略
ℹ 「wdm」: Compiled successfully.

确认Material Navigation运行页面

Angular6新特性之Angular Material

可以看到,缺省生成的Material Navigation就是一个Sidebar的菜单布局

Material Table

创建命令:ng generate @angular/material:material-table ?name 名称

创建名为mytable的Material Table:

liumiaocn:demo2 liumiao$ ng generate @angular/material:material-table --name mytable
CREATE src/app/mytable/mytable-datasource.ts (3360 bytes)
CREATE src/app/mytable/mytable.component.css (0 bytes)
CREATE src/app/mytable/mytable.component.html (857 bytes)
CREATE src/app/mytable/mytable.component.spec.ts (618 bytes)
CREATE src/app/mytable/mytable.component.ts (701 bytes)
UPDATE src/app/app.module.ts (993 bytes)
liumiaocn:demo2 liumiao$ 
liumiaocn:demo2 liumiao$ grep app- src/app/mytable/mytable.component.ts
 selector: 'app-mytable',
liumiaocn:demo2 liumiao$

替换app.component.html并运行ng serve

liumiaocn:demo2 liumiao$ cat src/app/app.component.html 
<app-mytable></app-mytable>
liumiaocn:demo2 liumiao$

确认Material Table运行页面,顶部对table可以进行排序操作

Angular6新特性之Angular Material

滑动到尾部可以看到具有分页的功能

Angular6新特性之Angular Material

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
新页面打开实际尺寸的图片
Aug 25 Javascript
Pro JavaScript Techniques学习笔记
Dec 28 Javascript
jQuery EasyUI API 中文文档 - Tabs标签页/选项卡
Oct 01 Javascript
jquery实现的3D旋转木马特效代码分享
Aug 25 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
分享jQuery封装好的一些常用操作
Jul 28 Javascript
js 调用百度分享功能
Feb 27 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
Jul 24 Javascript
把JavaScript代码改成ES6语法不完全指南(分享)
Sep 10 Javascript
js实现rem自动匹配计算font-size的示例
Nov 18 Javascript
JS阻止事件冒泡的方法详解
Aug 26 Javascript
通过滑动翻页效果实现和移动端click事件问题
Jan 26 Javascript
关于微信公众号开发无法支付的问题解决
Dec 28 #Javascript
小程序实现抽奖动画
Apr 16 #Javascript
微信小程序实现文字从右向左无限滚动
Nov 18 #Javascript
angular4自定义组件非input元素实现ngModel双向数据绑定的方法
Dec 28 #Javascript
小程序文字跑马灯效果
Dec 28 #Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
Dec 28 #Javascript
Angular使用Restful的增删改
Dec 28 #Javascript
You might like
一个简单实现多条件查询的例子
2006/10/09 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
PHP基于回溯算法解决n皇后问题的方法示例
2017/11/07 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
PHP7 windows支持
2021/03/09 PHP
QQ登录简单实现代码
2021/03/09 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
2014/05/01 Javascript
JS的location.href跳出框架打开新页面的方法
2014/09/04 Javascript
jQuery晃动层特效实现方法
2015/03/09 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery手指滑动轮播效果
2016/12/22 Javascript
w3c编程挑战_初级脚本算法实战篇
2017/06/23 Javascript
详解VUE 数组更新
2017/12/16 Javascript
web前端页面生成exe可执行文件的方法
2018/02/08 Javascript
小程序自定义单页面、全局导航栏的实现代码
2019/03/15 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
简单了解JavaScript弹窗实现代码
2020/05/07 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
[01:01:24]LGD vs Fnatic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
详细讲解用Python发送SMTP邮件的教程
2015/04/29 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
Python之列表实现栈的工作功能
2019/01/28 Python
Python参数解析模块sys、getopt、argparse使用与对比分析
2019/04/02 Python
python tkinter实现屏保程序
2019/07/30 Python
Django之路由层的实现
2019/09/09 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
什么是Rollback Segment
2013/04/22 面试题
C#软件工程师英语面试题
2015/06/07 面试题
2015年党员干部承诺书
2015/01/21 职场文书
python中Matplotlib绘制直线的实例代码
2021/07/04 Python