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 相关文章推荐
Textarea与懒惰渲染实现代码
Jan 04 Javascript
jQuery Ajax请求状态管理器打包
May 03 Javascript
js如何判断用户是否是用微信浏览器
Jun 05 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
Dec 18 Javascript
微信小程序-获得用户输入内容
Feb 13 Javascript
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
对于input 框限定输入值为浮点型的js代码
Sep 25 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
May 08 Javascript
nuxt.js 缓存实践
Jun 25 Javascript
微信小程序实现发红包功能
Jul 11 Javascript
Vue自定义铃声提示音组件的实现
Jan 22 Vue.js
关于微信公众号开发无法支付的问题解决
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
PHP实现简易blog的制作
2016/10/24 PHP
php app支付宝回调(异步通知)详解
2018/07/25 PHP
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
jQuery模拟黑客帝国矩阵效果实例
2015/06/28 Javascript
JS实现1000以内被3或5整除的数字之和
2016/02/18 Javascript
JavaScript File分段上传
2016/03/10 Javascript
详解jQuery中的empty、remove和detach
2016/04/11 Javascript
Function.prototype.apply()与Function.prototype.call()小结
2016/04/27 Javascript
AngularJS基础 ng-class-odd 指令示例
2016/08/01 Javascript
详解JS: reduce方法实现 webpack多文件入口
2017/02/14 Javascript
js实现股票实时刷新数据案例
2017/05/14 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
vue2.0s中eventBus实现兄弟组件通信的示例代码
2017/10/25 Javascript
基于Bootstrap表单验证功能
2017/11/17 Javascript
JS定义函数的几种常用方法小结
2019/05/23 Javascript
浅谈vue中$event理解和框架中在包含默认值外传参
2020/08/07 Javascript
python中的插值 scipy-interp的实现代码
2018/07/23 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
Python实现点阵字体读取与转换的方法
2019/01/29 Python
Python实现Mysql数据统计及numpy统计函数
2019/07/15 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Django框架创建项目的方法入门教程
2019/11/04 Python
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
俄罗斯三星品牌商店:GalaxyStore
2020/11/04 全球购物
模具设计与制造专业应届生求职信
2013/10/18 职场文书
创业计划书中包含的9个方面
2013/12/26 职场文书
安全演讲稿大全
2014/05/09 职场文书
员工薪酬激励方案
2014/06/13 职场文书
电力培训心得体会
2014/09/02 职场文书
颂军魂爱军营演讲稿
2014/09/13 职场文书
幼儿园教师考核评语
2014/12/31 职场文书
2016年校园重阳节广播稿
2015/12/18 职场文书
学生会自荐信
2019/05/16 职场文书
如何用JavaScript检测当前浏览器是无头浏览器
2021/04/27 Javascript
Mysql多层子查询示例代码(收藏夹案例)
2022/03/31 MySQL
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python