将 angular 中的文本转换为 html 格式
convert text to html format in angular
我正在创建 post 承诺请求,使用 angular 6. 在我创建的服务中
一个看起来像这样的请求函数:
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 returns 文本 html 格式如下:
<html>
<head>
some code
</head>
<body>
code i need
</body>
</html>
,很好,但我想将该文本用作 success/fail 页面上的 html 代码。具体来说,body 标签中的所有内容。我怎样才能做到这一点?如果我使用
之类的东西
<div [innerHTML]="res"></div>
或
{{res}}
它只是 returns 纯文本。
像这样使用innerHTML
:
<div [innerHTML]="res"></div>
确保你在附近有控制器,也许你忘记了?
它应该按照这个工作:
Angular - template syntax
Angular 编码 出于安全目的由 api 返回的值。
您必须在您的服务中使用 DomSanitizer 服务才能绕过它。
首先注入服务:
constructor(private sanitizer:DomSanitizer){}
然后在您的 sendRequest 函数中使用它:
this.data = this.sanitizer.bypassSecurityTrustHtml(res);
然后在您的 html 文件中:
<div [innerHTML]="data"></div>
注:
信任 HTML 格式的值可能会造成 安全风险 ,如 docs.
中所述
<div [innerHtml]="challenges_Data.challenges"></div>
这里 challenges_Data 是一个对象,挑战是 challenges_Data 的值。
我正在创建 post 承诺请求,使用 angular 6. 在我创建的服务中 一个看起来像这样的请求函数:
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 returns 文本 html 格式如下:
<html>
<head>
some code
</head>
<body>
code i need
</body>
</html>
,很好,但我想将该文本用作 success/fail 页面上的 html 代码。具体来说,body 标签中的所有内容。我怎样才能做到这一点?如果我使用
<div [innerHTML]="res"></div>
或
{{res}}
它只是 returns 纯文本。
像这样使用innerHTML
:
<div [innerHTML]="res"></div>
确保你在附近有控制器,也许你忘记了?
它应该按照这个工作: Angular - template syntax
Angular 编码 出于安全目的由 api 返回的值。 您必须在您的服务中使用 DomSanitizer 服务才能绕过它。
首先注入服务:
constructor(private sanitizer:DomSanitizer){}
然后在您的 sendRequest 函数中使用它:
this.data = this.sanitizer.bypassSecurityTrustHtml(res);
然后在您的 html 文件中:
<div [innerHTML]="data"></div>
注:
信任 HTML 格式的值可能会造成 安全风险 ,如 docs.
中所述<div [innerHtml]="challenges_Data.challenges"></div>
这里 challenges_Data 是一个对象,挑战是 challenges_Data 的值。