使用Angular2 + InMemoryWebAPI时无法加载SVG图标

时间:2019-01-03 13:22:52

标签: angular icons angular-material in-memory-database

在配置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。

1 个答案:

答案 0 :(得分:1)

将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'));
  }
}