angular6添加material-svgIcon
1. app/assets/util/util.svg.ts
统一管理svg字体库,避免各个模块分散加载。所以使用公共文件统一处理
再到core.module.ts中引入。在core模块下的所有组价都可以使用svg,不用单独加载
import { MatIconRegistry } from "@angular/material";
import { DomSanitizer } from "@angular/platform-browser";
// 统一管理svg字体库,避免各个模块分散加载。所以使用公共文件统一处理
// 再到core.module.ts中引入。在core模块下的所有组价都可以使用svg,不用单独加载
export const loadSvgsources = (ir:MatIconRegistry,ds:DomSanitizer) => {
const imgDir = 'assets/img';
const sidebarDir = `${imgDir}/sidebar`;
ir.addSvgIcon('day',ds.bypassSecurityTrustResourceUrl(`${sidebarDir}/day.svg`));
ir.addSvgIcon('month',ds.bypassSecurityTrustResourceUrl(`${sidebarDir}/month.svg`));
ir.addSvgIcon('project',ds.bypassSecurityTrustResourceUrl(`${sidebarDir}/project.svg`));
ir.addSvgIcon('projects',ds.bypassSecurityTrustResourceUrl(`${sidebarDir}/projects.svg`));
ir.addSvgIcon('week',ds.bypassSecurityTrustResourceUrl(`${sidebarDir}/week.svg`));
const days = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31];
const dayDir = `${imgDir}/days`;
days.forEach(d=>ir.addSvgIcon(`day${d}`,ds.bypassSecurityTrustResourceUrl(`${dayDir}/day${d}.svg`)));
// 增加一个svg图标集合
const avatarDir = `${imgDir}/avatar`;
ir.addSvgIconSetInNamespace('avatars',ds.bypassSecurityTrustResourceUrl(`${avatarDir}/avatars.svg`));
}
2. 再到核心模块core.module.ts中引入并使用loadSvgsources(ir,ds)方法加载所有的svg;
。
import { NgModule, Optional, SkipSelf } from '@angular/core';
import { HeaderComponent } from './header/header.component';
import { FooterComponent } from './footer/footer.component';
import { SidebarComponent } from './sidebar/sidebar.component';
import { SharedModule } from '../shared/shared.module';
import { MatIconRegistry } from '@angular/material';
import { DomSanitizer } from '@angular/platform-browser';
import { loadSvgsources } from '../util/util.svg';
@NgModule({
imports: [
SharedModule
],
exports:[
SharedModule,
HeaderComponent,
FooterComponent,
SidebarComponent
],
declarations: [HeaderComponent, FooterComponent, SidebarComponent]
})
export class CoreModule {
constructor(
@Optional() @SkipSelf() parent:CoreModule,
ir:MatIconRegistry,
ds:DomSanitizer
){
if(parent){
throw new Error('模块以及存在,不能再次加载');
}
loadSvgsources(ir,ds);
}
}
3. 在html模板中使用
A:当avatar.svg一个文件,里面是一个集合的时候用法。
[util.svg.ts中定义的名称] + ‘:’ + [svg的ID号]
<mat-icon svgIcon="avatars:svg-1"></mat-icon>
B:非集合单独文件标签用法。
<mat-icon svgIcon="week"></mat-icon>
<mat-icon svgIcon="month"></mat-icon>
angular6添加material-svgIcon的更多相关文章
- 2.5、Android Studio添加多适配的向量图片
Android Studio包含一个Vector Asset Studio的工具,可以帮助你添加Material图标和导入SVG(Scalable Vector Graphic)文件到你的项目中作为向 ...
- C# WPF抽屉效果实现(C# WPF Material Design UI: Navigation Drawer & PopUp Menu)
时间如流水,只能流去不流回! 点赞再看,养成习惯,这是您给我创作的动力! 本文 Dotnet9 https://dotnet9.com 已收录,站长乐于分享dotnet相关技术,比如Winform.W ...
- Angular 6的新特性介绍
2018年5月4日,Angular6.0.0版正式发布,新版本主要关注底层框架和工具链,目的在于使其变得更小更快.下面就介绍下新版本的一些主要新特性,供大家参考. ng update ng updat ...
- [精品推荐]Android Studio插件整理
GOOD 现在Android的开发者基本上都使用Android Studio进行开发(如果你还在使用eclipse那也行,毕竟你乐意怎么样都行).使用好Android Studio插件能大量的减少我们 ...
- android Lib
Android 支持库软件包含可以添加至应用的多个库.每个库均支持特定范围的 Android 平台版本和功能. 本指南介绍了各支持库提供的重要功能和版本支持,从而帮助您决定在应用中添加哪些支持库.一般 ...
- AS【常用插件】
安装插件,Settings -->[Plugins]-->搜索-->点击install-->重启AS 禁用插件,右侧面板会显示出已经安装的插件列表,取消勾选即可禁用插件 AS插 ...
- Unity中溶解shader的总结
在实际的游戏工程中,经常美术和策划会提出溶解的表现要求.比如子弹在飞行的时候,弹道不断的消融:角色受到大型炮弹的攻击,在击飞的时候不断的消融等等诸如此类的表现.一般的消融都是结合粒子系统来实现,通过给 ...
- 介绍三个Android支持库控件:TabLayout+ViewPager+RecyclerView
本文主要介绍如下三个Android支持库控件的配合使用: TabLayout:android.support.design.widget.TabLayout ViewPager:android.sup ...
- DirectX11 With Windows SDK--11 混合状态与光栅化状态
前言 虽然这一部分的内容主要偏向于混合(Blending),但这里还需提及一下,关于渲染管线可以绑定的状态主要有如下四种: 光栅化状态(光栅化阶段) 采样器状态(像素着色阶段) 混合状态(输出合并阶段 ...
随机推荐
- 编程里的API是什么意思?
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码 ...
- 利用命令行删除Android系统自带应用的方法
声明:本博客为原创博客.未经同意,不得转载!小伙伴们假设是在别的地方看到的话,建议还是来csdn上看吧(链接为http://blog.csdn.net/bettarwang/article/detai ...
- swift菜鸟入门视频教程-12-21讲
前段时间录制的swift教程.一直懒就没有发出来,有些教程是在xcode beta2的时候录制的,所以可能如今不太适合了,可是还是会有点帮助,懒了不想写太多的东西了,基本上就是依照官方文档上面的章节做 ...
- js---07 js预解析,作用域---闭包
js解析器首先不会逐行读代码,这是第二部了. 首先 根据var找到变量,根据function找函数,找到变量var a = 1,js解析器只会读取等号前面的var a,并把a设置值未定义,并不会读取等 ...
- Apple iMac性能基准测试
这里我要向大家介绍的一款苹果操作系统下的性能测试软件名叫GeekBench,是加拿大PrimateLabs公司出品. 下载地址:http://www.primatelabs.ca/geekbench/ ...
- HDU 2689 Tree
Tree Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- Codefroces B. New Skateboard
B. New Skateboard time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- thuwc9102划水记
thuwc9102划水记 Day -2 时隔两个月之后终于回一次家,心情非常愉悦,开始浪. Day 0 晚上回到学校,然而机房里并没多少人,大佬们明天才回来.╮(╯▽╰)╭ Day 1 中午饭菜挺好吃 ...
- POJ——T 3250 Bad Hair Day
http://poj.org/problem?id=3250 Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 19619 ...
- x264代码剖析(八):encode()函数之x264_encoder_close()函数
x264代码剖析(八):encode()函数之x264_encoder_close()函数 encode()函数是x264的主干函数.主要包含x264_encoder_open()函数.x264_en ...