angular - 使用 Angular2+ InMemoryWebAPI 时无法加载 SVG 图标
问题描述
配置 InMemoryWebAPI SVG 图标时无法使用
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpClientModule,
HttpClientInMemoryWebApiModule.forRoot(
InMemoryDataService, {dataEncapsulation: false}),
NoopAnimationsModule,
AppRoutingModule,
CustomMaterialModule
],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(private matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {
matIconRegistry.addSvgIconSet(domSanitizer.bypassSecurityTrustResourceUrl('~/../assets/mdi.svg'));
}
}
我尝试使用 apiBase 参数进行配置,但没有成功。
控制台:检索图标时出错:未定义
InMemoryWebAPI 必须忽略 API URL 范围之外的其他 url。
解决方案
将 passThruUnknownUrl 选项设置为 'true' 以允许未知请求通过,以便我们可以通过 URL 访问实际资产。
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
ReactiveFormsModule,
HttpClientModule,
HttpClientInMemoryWebApiModule.forRoot(
InMemoryDataService, {dataEncapsulation: false, passThruUnknownUrl: true}),
NoopAnimationsModule,
AppRoutingModule,
CustomMaterialModule
],
bootstrap: [AppComponent]
})
export class AppModule {
constructor(private matIconRegistry: MatIconRegistry, domSanitizer: DomSanitizer) {
matIconRegistry.addSvgIconSet(domSanitizer.bypassSecurityTrustResourceUrl('~/../assets/mdi.svg'));
}
}
推荐阅读
- wxmaxima - wxMaxima 没有给出数字答案——即使使用 float()
- facebook - Firebase:未为 FirebaseAuth 类定义 Flutter signInWithFacebook
- python - Scrapy - 遇到重复项目时停止爬虫
- r - 使用 dplyr/tidyr 选择命名向量的元素
- c# - C# 泛型调用
- jquery - 选择 n 个选项时使用 jquery 追加和删除 div
- hl7-fhir - 如何使用 FhirDotNet 获取相同类型的两个资源之间不同的属性列表
- javascript - 连续的承诺调用覆盖返回值
- javascript - 在 protractor.conf.js 中找不到模块浏览器?
- ios - 在横向模式下隐藏菜单页面 iPad 主详细信息页面