преобразовать текст в формат HTML в угловых

1

Я создаю почтовый запрос с обещанием, используя угловой 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 возвращает текст в формате html следующим образом:

<html> <head> some code </head> <body> code я need </body> </html>, это нормально, но я хотел бы использовать этот текст в качестве html-кода на странице успеха/сбоя. В частности, все, что есть в теге тела. Как я могу это достичь? Если я использую что-то вроде

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

или же

{{res}}

он просто возвращает текст.

Теги:
angular
angular6

2 ответа

2
Лучший ответ

Угловое кодирует значения, возвращаемые api для целей безопасности. Вы должны использовать службу DomSanitizer в своей службе, чтобы обойти ее.

Сначала введите услугу:

constructor(private sanitizer:DomSanitizer){}

Затем используйте его в функции sendRequest:

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

И затем в вашем html файле:

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

Замечания:

Доверительные значения в формате HTML могут представлять угрозу безопасности, как указано в документах.

  • 0
    Не работает По какой-то причине он вырезает всю строку, так что в результате получается пустая страница.
  • 0
    Как вы переносите значение res в компонент успеха / неудачи?
Показать ещё 2 комментария
1

Используя innerHTML:

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

Удостоверьтесь, что у вас есть контроллер где-то вокруг, возможно, вы забыли его?

Он должен работать в соответствии с этим: синтаксис углового шаблона

  • 0
    уже сделал это, но это приводит к случайному отрыву целого, что не имеет смысла

Ещё вопросы

Сообщество Overcoder
Наверх
Меню