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 相关文章推荐
jqGrid日期格式的判断示例代码(开始日期与结束日期)
Nov 08 Javascript
js的2种继承方式详解
Mar 04 Javascript
javascript实用方法总结
Feb 06 Javascript
jQuery实现仿百度帖吧头部固定导航效果
Aug 07 Javascript
js严格模式总结(分享)
Aug 22 Javascript
JavaScript仿百度图片浏览效果
Nov 23 Javascript
利用jquery实现实时更新歌词的方法
Jan 06 Javascript
vue实现点击隐藏与显示实例分享
Feb 13 Javascript
Vue自定义属性实例分析
Feb 23 Javascript
vue-cli3+typescript新建一个项目的思路分析
Aug 06 Javascript
原生JS实现汇率转换功能代码实例
May 13 Javascript
vue操作dom元素的3种方法示例
Sep 20 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
PHP 处理TXT文件(打开/关闭/检查/读取)
2013/05/13 PHP
如何离线执行php任务
2017/02/21 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
2017/08/18 PHP
Convert Seconds To Hours
2007/06/16 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
AngularJS入门教程(一):静态模板
2014/12/06 Javascript
PHP+mysql+Highcharts生成饼状图
2015/05/04 Javascript
javaScript事件学习小结(四)event的公共成员(属性和方法)
2016/06/09 Javascript
简单实现js悬浮导航效果
2017/02/05 Javascript
无循环 JavaScript(map、reduce、filter和find)
2017/04/08 Javascript
基于JavaScript实现的快速排序算法分析
2017/04/14 Javascript
微信小程序url与token设置详解
2017/09/26 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
基于vue中keep-alive缓存问题的解决方法
2018/09/21 Javascript
微信小程序实现动态获取元素宽高的方法分析
2018/12/10 Javascript
三分钟教你用Node做一个微信哄女友(基友)神器(面向小白)
2019/06/21 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
Vue使用mixin分发组件的可复用功能
2019/09/01 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
[13:25]VP vs VICI (BO3)
2018/06/07 DOTA
wxpython学习笔记(推荐查看)
2014/06/09 Python
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Flask之flask-script模块使用
2018/07/26 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
2019/07/23 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
python实现超市商品销售管理系统
2019/10/25 Python
Python3 pyecharts生成Html文件柱状图及折线图代码实例
2020/09/29 Python
Numpy中np.random.rand()和np.random.randn() 用法和区别详解
2020/10/23 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
HTML5播放实现rtmp流直播
2020/06/16 HTML / CSS
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
涉外文秘个人求职的自我评价
2013/10/07 职场文书
公司会议策划方案
2014/05/17 职场文书
2015年国培研修感言
2015/08/01 职场文书
人事部:年度述职报告范文
2019/07/12 职场文书