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 相关文章推荐
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
Javascript中拼接大量字符串的方法
Feb 05 Javascript
讲解JavaScript中for...in语句的使用方法
Jun 03 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
跟我学习javascript的最新标准ES6
Nov 20 Javascript
jQuery常用知识点总结以及平时封装常用函数
Feb 23 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 Javascript
动态加载css方法实现和深入解析
Jan 18 Javascript
VUE中v-model和v-for指令详解
Jun 23 Javascript
一文让你彻底搞清楚javascript中的require、import与export
Sep 24 Javascript
浅谈js闭包理解
Mar 28 Javascript
jQuery插件实现图片轮播效果
Oct 19 jQuery
关于微信公众号开发无法支付的问题解决
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
WHOIS类的修改版
2006/10/09 PHP
PHP批量生成缩略图的代码
2008/07/19 PHP
PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
2014/09/12 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
php实现处理输入转义字符的代码
2015/11/08 PHP
无闪烁更新网页内容JS实现
2013/12/19 Javascript
jquery设置按钮停顿3秒不可用
2014/03/07 Javascript
jQuery中:submit选择器用法实例
2015/01/03 Javascript
基于Vue.js实现数字拼图游戏
2016/08/02 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
2017/07/03 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
Vue登录注册并保持登录状态的方法
2018/08/17 Javascript
小程序云开发初探(小结)
2018/10/24 Javascript
微信小程序控制台提示warning:Now you can provide attr &quot;wx:key&quot; for a &quot;wx:for&quot; to improve performance解决方法
2019/02/21 Javascript
基于mpvue的简单弹窗组件mptoast使用详解
2019/08/02 Javascript
原生javascript的ajax请求及后台PHP响应操作示例
2020/02/24 Javascript
Postman内建变量常用方法实例解析
2020/07/28 Javascript
vue实现把接口单独存放在一个文件方式
2020/08/13 Javascript
详解Python绘图Turtle库
2019/10/12 Python
python输出数组中指定元素的所有索引示例
2019/12/06 Python
Python实现括号匹配方法详解
2020/02/10 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
eDreams巴西:廉价机票,酒店优惠和度假套餐
2017/04/14 全球购物
学生宿舍管理制度
2014/01/30 职场文书
小学生读书感言
2014/02/12 职场文书
销售简历自我评价怎么写
2014/09/26 职场文书
政风行风自查自纠报告
2014/10/21 职场文书
房产公证书
2015/01/23 职场文书
公司庆典主持词
2015/07/04 职场文书
Python-OpenCV实现图像缺陷检测的实例
2021/06/11 Python
Win11 22H2 2022怎么更新? 获得Win1122H22022版本升级技巧
2022/09/23 数码科技