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 相关文章推荐
深入认识JavaScript中的函数
Jan 22 Javascript
ajax更新数据后,jquery、jq失效问题
Mar 16 Javascript
JavaScript 中的日期和时间及表示标准介绍
Aug 21 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
Jun 12 Javascript
移动端JQ插件hammer使用详解
Jul 03 Javascript
node.js从数据库获取数据
May 08 Javascript
前端学习笔记style,currentStyle,getComputedStyle的用法与区别
May 28 Javascript
javascript监听页面刷新和页面关闭事件方法详解
Jan 09 Javascript
通过V8源码看一个关于JS数组排序的诡异问题
Aug 14 Javascript
JavaScript中常见内置函数用法示例
May 14 Javascript
详解小程序不同页面之间通讯的解决方案
Nov 23 Javascript
使用layer弹窗,制作编辑User信息页面的方法
Sep 27 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
一个简单的网页密码登陆php代码
2012/07/17 PHP
PHP正则替换函数preg_replace()报错:Notice Use of undefined constant的解决方法分析
2017/02/04 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
js 浮动层菜单收藏
2009/01/16 Javascript
html+css+js实现xp window界面及有关功能
2013/03/26 Javascript
node.js中的fs.rmdirSync方法使用说明
2014/12/16 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
jquery实现带渐变淡入淡出并向右依次展开的多级菜单效果实例
2015/08/22 Javascript
多种js图片预加载实现方式分享
2016/02/19 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
Jquery鼠标放上去显示全名的实现方法
2017/02/06 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
Vue2.0实现购物车功能
2017/06/05 Javascript
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
vant 中van-list的用法说明
2020/11/11 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
[00:32]2018DOTA2亚洲邀请赛Secret出场
2018/04/03 DOTA
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
python2.7 json 转换日期的处理的示例
2018/03/07 Python
Windows下安装Scrapy
2018/10/17 Python
惊艳的手工时装首饰:Migonne Gavigan
2018/02/23 全球购物
英国护发和美妆在线商店:Klip Shop
2019/03/24 全球购物
大学新学期计划书
2014/04/28 职场文书
药品营销策划方案
2014/06/15 职场文书
2014年体育教学工作总结
2014/12/09 职场文书
学雷锋日活动总结
2015/02/06 职场文书
2015年财政局工作总结
2015/05/21 职场文书
团组织推荐意见
2015/06/05 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
办公室日常管理制度
2015/08/04 职场文书
教务处教学工作总结
2015/08/10 职场文书
小组口号霸气押韵
2015/12/24 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
python实现一个简单的贪吃蛇游戏附代码
2022/06/28 Python