- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
您好,我的项目中有一个 components/home-component/home.component.html
和 components/home-component/home.component.ts
。我还有一个 svg
文件 assets/homenav/home_icon.svg
。我正在 home.component.ts
的构造函数中加载图标:
import { Component, OnInit } from '@angular/core';
import { MdIconRegistry } from '@angular/material';
import { DomSanitizer } from '@angular/platform-browser';
@Component({
moduleId: module.id,
templateUrl: 'home.component.html',
styleUrls: ['./home.component.css']
})
export class HomeComponent implements OnInit {
constructor(private iconRegistry: MdIconRegistry, private sanitizer: DomSanitizer) {
iconRegistry.addSvgIcon('home', sanitizer.bypassSecurityTrustResourceUrl('assets/homenav/home_icon.svg'));
}
ngOnInit() { }
}
如果我运行我的应用程序,应用程序本身可以正常工作。虽然图标没有被渲染。我正在加载这样的图标:
<md-icon class="homeNavIcon" color="primary" svgIcon="home"></md-icon>
没有错误消息或任何其他提示。如果我输入 http://localhost:4200/assets/homenav/home_icon.svg
作为 url,图标会正确显示在浏览器中。
此外,如果我在 HomeComponent
构造函数中设置断点并尝试在控制台中调用 iconRegistry
call,我会得到:
我还尝试将 url 更改为:
iconRegistry.addSvgIcon('home', sanitizer.bypassSecurityTrustResourceUrl('/../../../assets/homenav/home_icon.svg'));
和其他几个没有运气的组合。如果我将 home.component
直接放入 app
文件夹,它也似乎可以工作。
我是否提供了错误的 url 或我是否遗漏了其他内容。
更新:
我意识到如果图标在我的其他项目中正确显示,svgElement
也是空的。我还想概述一下我的 @NgModule
:
@NgModule({
declarations: [
AppComponent,
LoginComponent,
HomeComponent
],
imports: [
BrowserModule,
AppRoutingModule,
FormsModule,
MaterialModule,
MdCardModule,
HttpModule,
BrowserAnimationsModule
],
providers: [
AuthGuard,
AuthenticationService,
UserService,
// providers used to create fake backend
fakeBackendProvider,
MockBackend,
BaseRequestOptions
],
bootstrap: [AppComponent]
})
export class AppModule { }
更新 2:
正如我已经假设的那样,MdIconRegistry
中的图标从未加载过。我可以插入任何废话作为 Url,这不会引发任何错误。即:
iconRegistry.addSvgIcon('home',
sanitizer.bypassSecurityTrustResourceUrl('LoremIpsumblabla'));
这个调用不会抛出任何异常,而在另一个项目中我得到:
Failed to load resource: the server responded with a status of 404 (Not Found) :4200/LoremIpsumblabla
最佳答案
尝试改变这个路径
'./assets/homenav/home_icon.svg'
关于angular - 通过 MdIconRegistry 和 DomSanitizer 从 Assets 中检索图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45905807/
在 Angular 组件中,我们可以注入(inject) DomSanitizer 并使用它。 @component({..}) export class myComponent{ construc
我正在玩 bypassSecurityTrust* Angular 函数。目标是获得 script要在页面上执行的标记。但它要么继续使用消息进行 sanitizer WARNING: sanitizi
我在字符串 Ex: "Test'Name"中有撇号 (') 代码,我使用 Domsanitizer 对其进行清理以将 ' 转换为撇号。但是,如果我有双引号代码 ("),它不会被转换为相应的符号。不仅如
官方 Angular Security Guide谈到 4 个安全上下文:HTML、Url、Style 和 Resource Url。 每个人负责清理相应类型的资源。 此外,DomSanitizer
我运行 angular2 rc 5 一切正常,直到我重新启动我的电脑并再次执行 npm 启动,然后重新启动电脑一切正常 当我尝试再次开始我的项目时有一个错误说, node_modules/@angul
我用 DocumentsService之后我使用 URL.createObjectURL(result) 从服务器获取图像文件从服务器响应创建图像 url,一切正常,但我不断收到关于 的错误sanit
我在网页中使用 Angular(8),并希望将多个 iframe 显示为 innerHTML。 默认情况下, Angular domsanitizer 会删除危险元素。我知道我可以使用 bypassS
我正在使用 DomSanitizer 调用电话,如下所示: this.domSanitizer.bypassSecurityTrustResourceUrl(url)); url 是正
我正在使用所见即所得编辑器 (CKEditor) 并尝试使用 Angular 5 呈现内容。 我想弄清楚的是在 Angular 5 中使用 DomSanitizer 的正确方法。我面临的问题是超链接在
我有一个应用程序,用户可以在其中编写文档。内容以 html 的形式提供,其中可能包含“未保存的内容”。例如 带有 YouTube 视频的 iframe。 我是这样输出的 组件方法 getMainCo
我一直在将 DomSanitizer 与 HTML 字符串中的 SVG 一起使用。 在当前版本的 Angular 之前,这工作得很好: this.domSanitizer.bypassSecurity
我们正在开发 Angular 8 PWA 应用程序。该应用程序的一部分允许我们的客户创建自己的自定义表单来收集数据。 作为开发的一部分,我们正在整合一组函数来与数据交互。然而,由于我们很难为每个场景提
我只需要在带有 id "main-wrapper" 的 div 中注入(inject) HTML,所以在我的 component.ts 中我使用了这段代码 import { Component
在仅创建(实例化)具有 DomSanitizer 依赖项的组件的单元测试中,如何模拟/ stub 此依赖项? 因为DomSanitizer 是一个Abstract 类,所以我不知道bypassSecu
Html:- 这里我设置了 modalStyle 中的样式属性,它是 typescript 组件:- 在 typescript 中,我使用 domsanitizer 设置高度、显示、最小高度,这在
为元素提供背景图片时,一切正常: 但是我怎样才能为一个元素提供一个mask-image呢?这: 不工作。还有 不起作用。我什至没有在控制台中收到警告。 这是由于 DomSanitizer 对
我的模拟内存数据库中有 youtube 链接,我想 *ngFor 这些来自 youtube 的视频。 let videos: any[] =[ {videoURL: "Z
我想在将其注入(inject) 之前清理一些 CSS 中的标签我的应用程序。 我像这样通过 DomSanitizer 传递它: const safeCSS = this.domSanitzer.s
最近在我们的 Angular 2 应用程序中,我们通过 iframe 添加了一个视频组件来提取外部嵌入式视频。此外,我们通过利用 DomSanitizer 的管道清理这些资源 URL。问题是我们经常(
//Controller code @ViewChild('mass_timings') mass_timings: ElementRef; constructor(private domSani
我是一名优秀的程序员,十分优秀!