【问题标题】:Angular 6 , Loading svg doesn't appear in chromeAngular 6,加载 svg 不会出现在 chrome 中
【发布时间】:2019-03-05 14:14:21
【问题描述】:

我正在尝试在 Angular 6 中加载几个小部件,并创建了一个加载符号 svg ,并使用以下逻辑隐藏和显示加载 div ,直到加载所有小部件,在 firefox 中,加载 svg 正常显示,但是在 chrome 和 IE 中,在加载所有小部件之前会出现一个空白窗口,如果我用文本替换 svg,即使它不会出现在 Chrome 中,这里是代码

app.component.html

 <div [hidden]="counter >= 3" class="loading-div"> 
       <img src="assets/icons/loading-bee.svg" type="image/svg+xml"/>
       <span class="loading-bee-txt">Please wait while we retrieve the data.</span>
</div>
  <div>
    <wgt-financials (initialized)="counter = counter + 1"></wgt-financials>
    <wgt-financials (initialized)="counter = counter + 1"></wgt-financials>
    <wgt-financials (initialized)="counter = counter + 1"></wgt-financials>
  </div>
<div>

这在 Firefox 中完美运行,但在 Chrome 或 IE 中却不行。

【问题讨论】:

  • 它是否在检查器中的 Chrome 元素下显示图像?
  • 不,它显示了分割,图像没有被加载,文本也没有,但是在加载所有小部件后,图像将出现在检查器中。

标签: angular


【解决方案1】:

您不需要在 img 标签中添加“类型”。尝试删除“类型”。

<img src="assets/icons/loading-bee.svg"/>

也可以使用 [hidden] 来使用 *ngIf

*ngIf 与 [隐藏]

*ngIf 有效地从 DOM 中删除其内容,而 [hidden] 修改了 display 属性,仅指示浏览器不显示内容,但 DOM 仍然包含它。

<div *ngIf="counter !> 3 && counter != 3" class="loading-div"> 
   <img src="assets/icons/loading-bee.svg"/>
   <span class="loading-bee-txt">Please wait while we retrieve the data. 
   </span>
</div>

【讨论】:

  • 即使我使用 ngIf 而不是 [hidden] ,Chrome 仍然不会加载 svg 。
  • 它应该可以工作。看看这个堆栈闪电战。 stackblitz.com/edit/…
  • 在问题中,加载图像被加载到计数器为 3 ,与 url 中的内容完全相反,div 一直存在到计数器为 3 ,并且 div 的加载 svg 位于中心。
  • 现在检查示例..只需将逻辑更改为 *ngIf="counter stackblitz.com/edit/…
猜你喜欢
  • 2014-03-24
  • 2013-11-21
  • 2011-07-01
  • 2019-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多