Angular Material Icon使用详解


Posted in Javascript onNovember 07, 2018

1. 引入图标资源

在项目index.html文件里添加icon的图标库文件的引用。

<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="external nofollow" rel="stylesheet">

2. 导入MatIconModule

如果需要在别的组件同样使用,则需要exports里面引出.

3. icons 资源

可以访问material design获取全部icon名称及图标样式信息。

4. 自定义svg图标资源

在网上下载svg资源,并将文件保存到项目assets目录里。

注册图标资源
注册图标资源需要用到:

  1. MatIconRegistry 以及 DomSanitizer 类。
  2. MatIconRegistry(图标资源是基于字体而不是图片的)

使用MatIconRegistry的下面方法addSvgIcon,addSvgIconInNamespace, addSvgIconLiteral 或者addSvgIconLiteralInNamespace 注册.

DomSanitizer 可以把值净化为在不同 DOM 上下文中的安全内容,来帮你防范跨站脚本攻击(XSS)类的安全问题。

abstract class DomSanitizer implements Sanitizer {
 abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null
 abstract bypassSecurityTrustHtml(value: string): SafeHtml
 abstract bypassSecurityTrustStyle(value: string): SafeStyle
 abstract bypassSecurityTrustScript(value: string): SafeScript
 abstract bypassSecurityTrustUrl(value: string): SafeUrl
 abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl
}

abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null
SecurityContext:枚举

enum SecurityContext {
 NONE: 0
 HTML: 1
 STYLE: 2
 SCRIPT: 3
 URL: 4
 RESOURCE_URL: 5
}

SafeValue :一个标记性接口,用于表示一个值可以安全的用在特定的上下文中。

SafeValue 子接口:

  • SafeHtml
  • SafeResourceUrl
  • SafeScript
  • SafeStyle
  • SafeUrl

如果这个值在这个上下文中是可信的,则该方法会解开所包含的安全值,并且直接使用它;否则,这个值就会根据给定的安全上下文净化成安全的,比如替换那些具有不安全协议(例如 javascript:)的 URL。 该实现负责确保在给定的上下文中可以绝对安全的使用该值。

其余函数警告: 使用不可信的用户数据调用此方法将会让你的应用暴露在 XSS 安全风险之下!

当使用 bypassSecurityTrust... 时,请尽量确保尽早调用该方法,并且让他尽可能接近值的来源,以便能更容易地验证使用它时有没有引入安全风险。

这2个类需要DI进组件。

import {MatIconRegistry} from '@angular/material';
import {DomSanitizer} from '@angular/platform-browser';

constructor( iconRegistry:MatIconRegistry ,domSanitizer:DomSanitizer ){
 iconRegistry.addSvgIcon('bell',domSanitizer.bypassSecurityTrustResourceUrl('assets/bell.svg'));
}

svg导入需要http支持,因为DomSanitizer 涉及url解析,因此需要导入httpClientModule。

import { HttpClientModule} from '@angular/common/http'

@NgModule({
  imports: [
   HttpClientModule,
  ]
})
export class AppModule { }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
发两个小东西,ASP/PHP 学习工具。 用JavaScript写的
Apr 12 Javascript
Javascript和Ajax中文乱码吐血版解决方案
Dec 21 Javascript
javascript 获取模态窗口的滚动位置代码
Aug 06 Javascript
JS+CSS实现淡入式焦点图片幻灯切换效果的方法
Feb 26 Javascript
JS实现保留n位小数的四舍五入问题示例
Aug 03 Javascript
js显示动态时间的方法详解
Aug 20 Javascript
jquery判断页面网址是否有效的两种方法
Dec 11 Javascript
JavaScript仿微信打飞机游戏
Jul 05 Javascript
jQuery中$原理实例分析
Aug 13 jQuery
用原生 JS 实现 innerHTML 功能实例详解
Apr 03 Javascript
vue实现行列转换的一种方法
Aug 06 Javascript
Node.js系列之发起get/post请求(2)
Aug 30 Javascript
详解Webpack loader 之 file-loader
Nov 07 #Javascript
JS复杂判断的更优雅写法代码详解
Nov 07 #Javascript
javascript动态创建对象的属性详解
Nov 07 #Javascript
在vue中使用express-mock搭建mock服务的方法
Nov 07 #Javascript
详解在vue-test-utils中mock全局对象
Nov 07 #Javascript
vue-cli 首屏加载优化问题
Nov 06 #Javascript
Vue 实时监听窗口变化 windowresize的两种方法
Nov 06 #Javascript
You might like
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
PHP中文件缓存转内存缓存的方法
2011/12/06 PHP
PHP实现百度人脸识别
2019/05/06 PHP
php简单计算权重的方法示例【适合抽奖类应用】
2019/06/10 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
Laravel 自带的Auth验证登录方法
2019/09/30 PHP
php中用unset销毁变量并释放内存
2020/05/10 PHP
js 事件小结 表格区别
2007/08/13 Javascript
node.js 开发指南 ? Node.js 连接 MySQL 并进行数据库操作
2014/07/29 Javascript
Backbone.js框架中Model与Collection的使用实例
2016/05/07 Javascript
javascript时间戳和日期字符串相互转换代码(超简单)
2016/06/22 Javascript
使用jQuery5分钟快速搞定双色表格的简单实例
2016/08/08 Javascript
关于动态执行代码(js的Eval)实例详解
2016/08/15 Javascript
基于jQuery实现的幻灯图片切换
2016/12/02 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
ejsExcel模板在Vue.js项目中的实际运用
2018/01/27 Javascript
详解VSCode配置启动Vue项目
2019/05/14 Javascript
Vue CLI3基础学习之pages构建多页应用
2019/06/02 Javascript
JavaScript类的继承多种实现方法
2020/05/30 Javascript
python编写Logistic逻辑回归
2020/12/30 Python
对python判断ip是否可达的实例详解
2019/01/31 Python
python获取交互式ssh shell的方法
2019/02/14 Python
python实现操作文件(文件夹)
2019/10/31 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
全球航班旅行搜索网站:Cheapflights
2017/05/19 全球购物
惠普香港官方商店:HP香港
2019/04/30 全球购物
英语自荐信范文
2013/12/11 职场文书
销售找工作求职信
2013/12/20 职场文书
2014年高中生自我评价范文
2014/09/26 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
五年级上册复习计划
2015/01/19 职场文书
客户答谢会致辞
2015/01/20 职场文书
升职自我推荐信范文
2015/03/25 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
湘江北去观后感
2015/06/15 职场文书
python超详细实现完整学生成绩管理系统
2022/03/17 Python