使用Typescript获取assets文件夹中的文件名列表

时间:2017-07-20 17:18:23

标签: angular typescript1.8

如何使用Typescript获取文件夹中的所有文件名? 这是一个有角度的2项目。

更具体地说,我尝试做的是使用照片文件夹中的图像设置引导轮播的图像。目前我正在这样做:

resolve: (root, params, { SECRET }) => {
    return new Promise(resolve => {
        User.findOne({email: params.data.email}).exec().then(user => {
            bcrypt.compare(params.data.password, user.password, (err, authorized) => {
                if (!authorized) throw new Error('Invalid password');
                var token = jwt.sign({
                    user: _.pick(user, ['_id', 'name'])
                }, SECRET, {expiresIn: '1y'});
                resolve(token);
            });
        });
    }).then(token => token);
}

然后在html文件中使用images数组,如下所示:

private _images: Image[] = []

ngOnInit(): void {
    this._images = [
        { "title": "Slide 1", "url": "../photos/carousel/gg_slide 1.jpg" },
        { "title": "Slide 2", "url": "../photos/carousel/gg_slide 2.jpg" },
        { "title": "Slide 3", "url": "../photos/carousel/gg_slide 3.jpg" },
        { "title": "Slide 4", "url": "../photos/carousel/gg_slide 4.jpg" },
        { "title": "Slide 5", "url": "../photos/carousel/gg_slide 5.jpg" }
    ]
}//ngOnInit 

我希望能够遍历照片文件夹中的所有文件,并将它们添加到图像数组中。 这样我只需要更新照片文件夹中的照片即可。

1 个答案:

答案 0 :(得分:0)

我无法找到使用Javascript的解决方案。看来JS没有读取文件结构的能力。取而代之的是,您将必须在数据库的后端保留一个列表,或者创建一个json文件,以使其手动更新所有图标。

I have found this example.

因为从assets文件夹访问文件很容易,所以我们可以利用它
,并且可以在图标icons.json中存储图标文件名称的数组。

1。icons.json文件夹中创建assets,如下所示-

{  // ---------- icons.json---------
  "icons-array" : ["icon-name1", "icon-name2", "icon-name3"]
}

2。。将icon-name1.svgicon-name2.svgicon-name3.svg文件保存在assets/icons文件夹中。
3。。在角度应用程序启动时读取icons-json文件。
How to read file at Angular Application Start-up

4。。在读取icons.json内容之后,将icons-array属性的值存储到全局可访问数组中,例如globalAccessibleIconsArray
5。并将数组用作-

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


因此,用于添加新图标

  • 您必须将新的图标文件放在assets/icon文件夹中,然后
  • icons.json文件夹中的assets文件中添加新文件名。