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 相关文章推荐
iframe如何动态创建及释放其所占内存
Sep 03 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
Dec 08 Javascript
avalonjs实现仿微博的图片拖动特效
May 06 Javascript
jquery实现先淡出再折叠收起的动画效果
Aug 07 Javascript
jQuery文字横向滚动效果的实现代码
May 31 Javascript
js select实现省市区联动选择
Apr 17 Javascript
node.js实现登录注册页面
Apr 08 Javascript
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
JS中数据结构与算法---排序算法(Sort Algorithm)实例详解
Jun 17 Javascript
js实现网页版贪吃蛇游戏
Feb 22 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
Jun 19 Javascript
基于elementUI竖向表格、和并列的案例
Oct 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP实现的DES加密解密类定义与用法示例
2020/11/02 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
Laravel框架实现抢红包功能示例
2019/10/31 PHP
在chrome中window.onload事件的一些问题
2010/03/01 Javascript
NodeJS框架Express的模板视图机制分析
2011/07/19 NodeJs
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
JavaScript模板引擎Template.js使用详解
2016/12/15 Javascript
vuejs 单文件组件.vue 文件的使用
2017/07/28 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
2018/07/18 Javascript
vue.js实现简单的计算器功能
2020/02/22 Javascript
python django集成cas验证系统
2014/07/14 Python
Python里disconnect UDP套接字的方法
2015/04/23 Python
Python实现的Excel文件读写类
2015/07/30 Python
Python守护线程用法实例
2017/06/23 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
python实现键盘控制鼠标移动
2020/11/27 Python
常用python爬虫库介绍与简要说明
2020/01/25 Python
python小程序基于Jupyter实现天气查询的方法
2020/03/27 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
业务部主管岗位职责
2014/01/29 职场文书
保险公司演讲稿
2014/09/02 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
开展党的群众路线教育实践活动工作总结
2014/11/05 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
2019年自助餐厅创业计划书模板
2019/08/22 职场文书
python数据分析之单因素分析线性拟合及地理编码
2022/06/25 Python
Android移动应用开发指南之六种布局详解
2022/09/23 Java/Android