【问题标题】:Show report in iframe with http.get() call in Angular 8在 Angular 8 中使用 http.get() 调用在 iframe 中显示报告
【发布时间】:2020-05-26 18:01:07
【问题描述】:

我正在尝试使用 http.get() 调用加载报告并使用 angular 8 在 iframe 中显示它。

这是 API 响应。

组件.ts

    export class LogsComponent implements OnInit {
  logsData;
  logs;

  displayString

  constructor( private httpService: HttpService, private loaderService: LoaderService,
    private domSanitizer: DomSanitizer) { }

  ngOnInit() {
    this.httpService.getLogs().subscribe(data => {
      this.logsData = data;
      this.displayString = this.domSanitizer.bypassSecurityTrustHtml(this.logsData);
    })

  }

}

component.html

<iframe [srcdoc]="displayString"></iframe>

收到此错误。

【问题讨论】:

  • 您面临的问题是什么?
  • 如果你用 http.get() 来获取 HTML 内容,为什么不能直接将 URL 绑定到 iframe 标签中的 [src] 属性?有什么具体原因吗?

标签: javascript angularjs angular api iframe


【解决方案1】:

看起来您的 HttpService 正在从 API 返回一个无法反序列化为 JSON 对象的字符串。您可以返回将字符串响应放入具有存储该字符串的属性的对象中。在组件上,您可以打开该 JSON 对象并将其传递给组件。 ** 需要注意的重要一点是 Angular 会将字符串视为不安全的,您需要通过调用 DomSanitizert.bypassSecurityTrustHtml 来清理字符串并将字符串传递给该方法。希望这会有所帮助。

【讨论】:

  • 感谢@paul,我已经完成了建议的更改,但仍然出现错误
猜你喜欢
  • 2023-03-10
  • 2020-05-29
  • 2014-07-11
  • 2020-02-07
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-08
相关资源
最近更新 更多