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 相关文章推荐
js中top/parent/frame概述及案例应用
Feb 06 Javascript
在JavaScript中使用对数Math.log()方法的教程
Jun 15 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
Oct 15 Javascript
js 动态添加元素(div、li、img等)及设置属性的方法
Jul 19 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
Aug 01 Javascript
jQuery ui autocomplete选择列表被Bootstrap模态窗遮挡的完美解决方法
Sep 23 Javascript
JS实现复制内容到剪贴板功能
Feb 05 Javascript
vue.js实现带日期星期的数字时钟功能示例
Aug 28 Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 Javascript
详解vue项目接入微信JSSDK的坑
Dec 14 Javascript
vue实现Input输入框模糊查询方法
Jan 29 Javascript
vue+Element-ui实现登录注册表单
Nov 17 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中使用反射技术的架构插件使用说明
2010/05/18 PHP
用php代码限制国内IP访问我们网站
2015/09/26 PHP
javascript数组的使用
2013/03/28 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
bootstrap改变按钮加载状态
2014/12/01 Javascript
Node.js 异步编程之 Callback介绍(一)
2015/03/30 Javascript
JS实现的简单鼠标跟随DiV层效果完整实例
2015/10/31 Javascript
实例解析jQuery插件EasyUI最常用的表单验证规则
2015/11/29 Javascript
AngularJS实现ajax请求的方法
2016/11/22 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
解析js如何获取css样式
2016/12/11 Javascript
Vue.js移动端左滑删除组件的实现代码
2017/09/08 Javascript
浅谈vue中数据双向绑定的实现原理
2017/09/14 Javascript
详解vue路由篇(动态路由、路由嵌套)
2019/01/27 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
python类装饰器用法实例
2015/06/04 Python
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
如何使用Python的Requests包实现模拟登陆
2018/04/27 Python
flask框架视图函数用法示例
2018/07/19 Python
pycham查看程序执行的时间方法
2018/11/29 Python
使用python serial 获取所有的串口名称的实例
2019/07/02 Python
让Python脚本暂停执行的几种方法(小结)
2019/07/11 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
使用虚拟环境打包python为exe 文件的方法
2019/08/29 Python
python 字典访问的三种方法小结
2019/12/05 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
马来西亚在线健康商店:Medipal Malaysia
2020/04/13 全球购物
计算机专业学生求职信分享
2013/12/15 职场文书
文化建设工作方案
2014/05/12 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
挂职锻炼工作总结2015
2015/05/28 职场文书
工作证明书
2015/06/15 职场文书