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 面向对象编程
Oct 28 Javascript
JavaScript中实现块作用域的方法
Apr 01 Javascript
在jQuery中 常用的选择器介绍
Apr 16 Javascript
jquery获取一个元素下面相同子元素的个数代码
Jul 31 Javascript
JavaScript中判断页面关闭、页面刷新的实现代码
Aug 27 Javascript
谈谈基于iframe、FormData、FileReader三种无刷新上传文件的方法
Dec 03 Javascript
使用bootstrap3开发响应式网站
May 12 Javascript
Angular2内置指令NgFor和NgIf详解
Aug 03 Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
Jul 24 Javascript
vue实现在一个方法执行完后执行另一个方法的示例
Aug 25 Javascript
vue 获取视频时长的实例代码
Aug 20 Javascript
layui实现二维码弹窗、并下载到本地的方法
Sep 25 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
2019年中国咖啡业现状与发展趋势
2021/03/04 咖啡文化
php MySQL与分页效率
2008/06/04 PHP
PHP安全性漫谈
2012/06/28 PHP
PHP curl伪造IP地址和header信息代码实例
2015/04/27 PHP
PHP实现添加购物车功能
2017/03/06 PHP
PHP中的异常处理机制深入讲解
2020/11/10 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
RequireJS简易绘图程序开发
2016/10/28 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
使用nodejs分离html文件里的js和css详解
2019/04/12 NodeJs
基于js判断浏览器是否支持webGL
2020/04/18 Javascript
如何在微信小程序中使用骨架屏的步骤
2020/06/12 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
python处理大数字的方法
2015/05/27 Python
Python 40行代码实现人脸识别功能
2017/04/02 Python
利用selenium 3.7和python3添加cookie模拟登陆的实现
2017/11/20 Python
pycharm远程调试openstack代码
2017/11/21 Python
Python并发之多进程的方法实例代码
2018/08/15 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
Tensorflow--取tensorf指定列的操作方式
2020/06/30 Python
人事专员岗位职责
2013/11/20 职场文书
医学生就业推荐表自我鉴定
2014/03/26 职场文书
幼儿园中班教师寄语
2014/04/03 职场文书
幼儿教师师德演讲稿
2014/05/06 职场文书
社区春季防火方案
2014/06/02 职场文书
授权委托书协议书
2014/10/16 职场文书
公证书格式
2015/01/23 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
证券公司客户经理岗位职责
2015/04/09 职场文书
总经理司机岗位职责
2015/04/10 职场文书
文化苦旅读书笔记
2015/06/29 职场文书
认识实习感想
2015/08/10 职场文书
asyncio异步编程之Task对象详解
2022/03/13 Python