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 相关文章推荐
jquery插件推荐 jquery.cookie
Nov 09 Javascript
javascript实现动态加载CSS
Jan 26 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
Mar 28 Javascript
微信小程序 网络API发起请求详解
Nov 09 Javascript
jQuery延迟执行的实现方法
Dec 21 Javascript
bootstrap配合Masonry插件实现瀑布式布局
Jan 18 Javascript
javascript判断回文数详解及实现代码
Feb 03 Javascript
Vue 仿百度搜索功能实现代码
Feb 16 Javascript
深入理解Promise.all
Aug 08 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
Sep 11 Javascript
vue实现移动端图片上传功能
Dec 23 Javascript
JavaScript实现下拉列表
Jan 20 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读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
浅析PHP原理之变量分离/引用(Variables Separation)
2013/08/09 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
10个很棒的jQuery代码片段
2015/09/24 Javascript
用js实现放大镜的效果的简单实例
2016/05/23 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
利用angular、react和vue实现相同的面试题组件
2018/02/19 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
用Vue.js在浏览器中实现裁剪图像功能
2019/06/18 Javascript
bootstrap table插件动态加载表头
2019/07/19 Javascript
Scrapy的简单使用教程
2017/10/24 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
对pytorch的函数中的group参数的作用介绍
2020/02/18 Python
使用keras时input_shape的维度表示问题说明
2020/06/29 Python
Python3获取cookie常用三种方案
2020/10/05 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
Agoda香港:全球特价酒店预订
2017/05/07 全球购物
英国亚马逊官方网站:Amazon.co.uk
2019/08/09 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
销售员岗位职责范本
2014/02/03 职场文书
致标枪运动员广播稿
2014/02/06 职场文书
幼儿园儿童节活动主持词+串词大全
2014/03/21 职场文书
运动员口号
2014/06/09 职场文书
项目合作意向书模板
2014/07/29 职场文书
龙猫观后感
2015/06/09 职场文书
葬礼主持词
2015/07/02 职场文书
哪类餐饮行业,最适合在高校创业?
2019/08/19 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Go语言编译原理之变量捕获
2022/08/05 Golang