首页 > 解决方案 > 如何以角度8循环iframe

问题描述

iframe 一直在重新加载。有没有办法停止重新加载?

我的代码

<ng-container  *ngFor="let element of elements">
<iframe
      [src]="sanitizer.bypassSecurityTrustResourceUrl(element?.src)"
      width="500"
      height="500"
>
</iframe>
</ng-container>

标签: angular

解决方案


您的问题是 ypu 正在绑定一个函数。Angular 不知道函数值何时更新(它绑定到引用),因此您遇到了这个问题。吸气剂也会发生同样的事情。

我的建议是您执行以下操作:

在组件中创建成员变量

 public elementSrc = [];

在代码中分配 init 函数中的源代码,或者在您更改值的任何位置。

 // For each of your elements
 this.elementSrc[i] = sanitizer.bypassSecurityTrustResourceUrl(element[i]?.src)

并像这样在您的代码中分配

<ng-container  *ngFor="let element of elements; let i = index">
<iframe
      [src]="elementSrc[i]"
      width="500"
      height="500"
>
</iframe>
</ng-container>

您可以采用的另一种方法是在绑定之前对每个元素的 src 进行清理,然后仅使用 element.sanitizedSrc 进行绑定


推荐阅读