Как отменить bySecurityTrustHtml, то есть преобразовать SafeValue обратно в строку
Я генерирую HTML и вставляю его в мою веб-страницу, используя
let data = '<font color=blue>hello world</font>';
this.safevalue = this.domSanitizer.bypassSecurityTrustHtml(data);
В другом месте моего кода я хочу преобразовать безопасное значение обратно в строку, поэтому я попробовал это...
data = this.safevalue.toString();
но это устанавливает данные в строку, как это...
'SafeValue must use [property]=binding: (see http://g.co/ng/security#xss)'
что не полезно
2 ответа
Решение
Я не знаю, если вы уже нашли исправление для этого, но, если вы просто хотите оригинальное значение, помечены как безопасные:
var yourString = this.domSanitizer.sanitize(SecurityContext.HTML, data)
Я копался в исходном коде, и оказалось, что невозможно получить исходную строку из SafeValue
, Поэтому я думаю, мне придется хранить параллельный массив данных для всех небезопасных значений.