角度 – 动态加载图像

前端之家收集整理的这篇文章主要介绍了角度 – 动态加载图像前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在StackOverflow上搜索过但我找不到解决问题的方法.

F.Y.I我正在使用ASP.net Core 2.0的默认角度项目

我正在构建一个Angular应用程序,我正在尝试根据其他地方找到的配置加载客户的徽标.

我正在尝试将此文件加载到我的home.component.html中

我创建了一个“CustomerService”,它有一个函数getlogo(),它本身返回客户的徽标路径.

我的文件夹结构如下:
FOLDER STRUCTURE IMAGE
assets文件夹保存图像,下面的HTML可以在home.component.html中找到

我知道“../../”不是要走的路,所以我的第一个问题就是如何解决这个问题.

我创建了以下HTML结构:

<img src="../../assets/timeblockr-logo.png" />
<img [src]="customerservice.getlogo()" />

CustomerService的getlogo函数返回以下内容

getlogo() {
    return "../../assets/timeblockr-logo.png";
}

**编辑:找到解决方案! **

事实证明我必须使用:

getlogo(): string{
    return require("../assets/timeblockr-logo.png");
}

特别感谢@Niladri解决这个问题!

解决方法

Webpack使用url-loader加载角度项目中的图像,扩展名为.png,.jpg等.在github https://github.com/webpack-contrib/url-loader中查看url-loader repo中的以下代码

module.exports = {
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif)$/,use: [
          {
            loader: 'url-loader',options: {
              limit: 8192
            }
          }
        ]
      }
    ]
  }
}

它会查找具有上述扩展名的图像文件.但是我们需要对Webpack的实际图像路径使用require语句来理解图像的路径,以便它可以拾取它们.当使用图像的路径作为变量或从方法返回路径值时,这在.ts / typescript文件中是必需的.第一个图片标签

< img src =“../../ assets / timeblockr-logo.png”/>因为Webpack使用.html文件的html-loader,它会自动使用捆绑的图像URL替换图像标签上的src属性值.

所以你的getlogo()方法应该如下所示

getlogo():string {
    return require("../assets/timeblockr-logo.png");
}

猜你在找的Angularjs相关文章