首页 > 解决方案 > Angular:从资产文件夹中读取所有文件

问题描述

tltr:我可以从角度访问资产目录吗?

src/assets/icons我使用的文件夹中有一堆 SVG mat-icon。唯一的缺点是当我添加一个新图标时,我必须添加文件,并且我必须将文件名添加到我用来循环以将其添加到matIconRegistry. 有没有办法简单地从目录中读取所有文件?

这是我目前的解决方案:

@NgModule()
export class CustomIconModule {
  constructor(
    private matIconRegistry: MatIconRegistry,
    private domSanitizer: DomSanitizer
  ) {
    const icons = [
      'icon1', 'icon2',
    ];

    for (const icon of icons) {
      this.matIconRegistry.addSvgIconInNamespace(
        'my-namespace',
        icon,
        domSanitizer.bypassSecurityTrustResourceUrl(`./assets/icons/${icon}.svg`)
      );
    }
  }
}

更新:我编写了一个 bash 脚本,该脚本循环遍历文件,生成一个 .ts 文件,其中包含所有文件名的数组,并执行git add. 我在预提交 git 挂钩中运行它。不理想,但它现在有点工作。不过,我很想找到一个纯 JS 解决方案。

标签: angularangular-material2

解决方案


推荐阅读