0

我面临一个问题DomSanitizer

我创建了一个StackBlitz来复制这个问题。

每次单击按钮时,都会重新加载 iframe A。该按钮完全没有任何作用 - 所以它与 iframe 无关。

iframe A 对其源具有动态引用。为了完成这项工作,我使用DomSanitizer.

iframe B 有一个静态引用,这里没有重新加载 - 这是我的预期。只是为了表明它与消毒剂有关。

所以我需要在我的应用程序中有一个 iframe,它的内容应该取决于应用程序的状态(一些输入)。如果情况发生变化,那么重新加载就可以了。

但我不能接受每次单击与 iframe 无关的按钮时重新加载。

我该如何处理?感谢您的支持!

4

1 回答 1

2

问题:

问题是由于您method在数据绑定语法中使用了 a 引起的,这里:

<iframe 
  [src]="getURL()" 
  width="100%" 
  height="100px">
</iframe>

因此,每次 Angular 执行变更检测时,getURL都会调用。

解决方案:

您可以创建一个Pipe来清理iframe srcurl。我在这个答案中做了类似的事情。

这样,您iframe就不会在每次 Angular 执行更改检测时重新加载。

这是您参考的工作示例 StackBlitz

于 2019-07-16T16:43:54.913 回答