0

我想知道是否有一种快速而干净的方法可以将整个目录注册到 mat-icon 注册机制。

到目前为止,我所做的是将我的图标名称保存在列表中,然后遍历列表以注册它们,但我对每次添加时都必须将新图标名称添加到列表中这一事实不满意一个图标。

这是我的代码:

const ICONS_TO_ADD = {
  'general': ['follow', 'email', 'calendar', 'recommendation', 'follow_reg', 'follow_reg_on']
};

export class AppComponent {

  constructor( private matIconRegistry: MatIconRegistry, private domSanitizer: DomSanitizer,) {
    this.addIcons();
  }

  private addIcons() {
    for (const dirName of Object.keys(ICONS_TO_ADD)) {
      ICONS_TO_ADD[dirName].forEach(fileName => {
        const res = this.matIconRegistry.addSvgIcon(
          `${dirName}_${fileName}`,
          this.domSanitizer.bypassSecurityTrustResourceUrl(`../assets/svg/${dirName}/${fileName}.svg`)
        );
      });
    }
  }
}
4

1 回答 1

0

您可以编写自定义任务以从目录列表中自动生成该列表。理想情况下,在仅包含此列表的文件中,以便您可以轻松覆盖。

然后在构建之前运行该任务

于 2019-10-30T06:39:01.230 回答