欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Angular Material Icon使用详解

程序员文章站 2022-06-20 08:09:18
1. 引入图标资源 在项目index.html文件里添加icon的图标库文件的引用。

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 { }

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