求助: 当使用 Angular 的 MatIcon 时,有概率不显示 icon 或者只显示部分的.

查看 10|回复 1
作者:CyouYamato   
新手学 Angular 人麻了. 附上代码
AComponent ts:
this.iconsLoaded$.subscribe((data: boolean) => {
      this.iconsLoaded = data;
      this.cdr.detectChanges();
});
async registerIcons() {
    for (const item of this.gridColumns) {
     // 从 IndexedDB  中取出 svg
      const svg: string | undefined = await getSvg(item);
      if (!svg) {
        const svgContent = await fetch(`icon/${item}.svg`).then((res) =>
          res.text(),
        );
        await setSvg(item, svgContent); // 缓存到 IndexedDB
        this.matIconRegistry.addSvgIconLiteral(
          item,
          this.sanitizer.bypassSecurityTrustHtml(svgContent),
        );
      } else {
        this.matIconRegistry.addSvgIconLiteral(
          item,
          this.sanitizer.bypassSecurityTrustHtml(svg),
        );
      }
    }
    return true;
  }
BComponent ts:
    await this.AComponent.registerIcons();
    this.AComponent.iconSubject.next(true);
A html:
  
    @if (iconsLoaded$ | async) {
      @for (item of gridColumns; track item) {
        
         
            
            
              {{ cityInfo[item] }}
            
         
        
      }
    }
  
chihiro2014   
为啥整这么复杂?直接放在前端静态目录就完了=。=,然后注册到 maticonregistry 统一管理。不至于为了一点性能来折磨自己
您需要登录后才可以回帖 登录 | 立即注册

返回顶部