gpt4 book ai didi

javascript - 以 Angular 将文本转换为html格式

转载 作者:行者123 更新时间:2023-11-30 08:22:24 25 4
gpt4 key购买 nike

我正在使用 angular 6 创建有 promise 的发布请求。在我创建的服务中一个看起来像这样的请求函数:

sendRequest() {
let promise = new Promise((resolve, reject)=>{
this.http.post(this.url, this.params, {responseType: 'text'}).toPromise()
.then(res =>{
this.data = res;
this.router.navigateByUrl('1/success'); // I want to show res code on this page
resolve();
},
error => {
this.data = error;
this.router.navigateByUrl('1/fail');
reject(error);
}
)
return promise;
})}

res 返回 html 格式的文本,如下所示:

<html>
<head>
some code
</head>
<body>
code i need
</body>
</html>
,这很好,但我想将该文本用作成功/失败页面上的 html 代码。具体来说,body 标签中的所有内容。我怎样才能做到这一点?如果我使用类似的东西

<div [innerHTML]="res"></div>

{{res}}

它只返回纯文本。

最佳答案

Angular 出于安全目的对 api 返回的值进行编码。您必须在您的服务中使用 DomSanitizer 服务才能绕过它。

首先注入(inject)服务:

constructor(private sanitizer:DomSanitizer){}

然后在您的sendRequest 函数中使用它:

this.data = this.sanitizer.bypassSecurityTrustHtml(res);    

然后在您的 html 文件中:

<div [innerHTML]="data"></div>

注意:

docs 中所述,信任 HTML 格式的值可能会带来安全风险 .

关于javascript - 以 Angular 将文本转换为html格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51300100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com