Вставить HTML в строку

Используя Angular 5 и Firebase, я создал веб-сайт обзора, который позволяет пользователям создавать обзоры на CreateComponent и читать их на ReviewComponent. Я бы хотел, чтобы тело обзора могло содержать HTML для ссылок или изображений.

ReviewComponent тянет основную часть обзора с:

<p style = "margin-bottom: 2rem; white-space: pre-wrap;">{{review.body}}</p>

Я использую pre-wrap для сохранения разрывов строк в теле.

Пример ввода от CreateComponent:

I already can’t wait to see <a href = "http://www.ign.com/articles/2017/11/30/marvels-the-avengers-infinity-war-trailer-breakdown"> what comes next.</a>

Когда я проверяю вывод тела, я вижу следующее:

<p _ngcontent-c1 style = "margin-bottom: 2rem; white-space: pre-wrap;">I already can’t wait to see &lt;a href = "http://www.ign.com/articles/2017/11/30/marvels-the-avengers-infinity-war-trailer-breakdown"&gt;what comes next.&lt;/a&gt;</p>.

Как я могу изменить HTML, чтобы строка корректно работала со ссылками и изображениями?

Я думаю, вам нужно использовать редактор форматированного текста.

Jun Kang 13.03.2018 22:33
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
1
156
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Привет, ребята, я не знаю, почему вы проголосовали против моего ответа, но вот решения вашей проблемы:

https://plnkr.co/edit/VHvVpvnTeoGWsA0d3eex?p=preview

Вот код:

//our root app component
import {Component, NgModule, VERSION, Pipe, PipeTransform, ChangeDetectorRef } from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
import { FormsModule } from '@angular/forms';

@Component({
  selector: 'my-app',
  template: `
    <div [outerHTML]='selectedValue | html'></div>
  `,
})
export class App {
  selectedValue: string = 'I already can’t wait to see <a href = "https://www.ign.com/articles/2017/11/30/marvels-the-avengers-infinity-war-trailer-breakdown"> what comes next.</a>';
  constructor(private cd: ChangeDetectorRef) {
  }
}


@Pipe({
  name: 'html'
})
export class HtmlPipe implements PipeTransform {

  transform(value: string) {
      return `<div>${value}</div>`;
  }

}

@NgModule({
  imports: [ BrowserModule, FormsModule ],
  declarations: [ App, HtmlPipe ],
  bootstrap: [ App ]
})
export class AppModule {}

Вы можете написать pipe для этого приложения, как в этой статье:

Как разрешить HTML вместо трубы angular2

Ответ принят как подходящий

Связывание review.body с [innerHTML] исправляет это.

<p style = "margin-bottom: 2rem; white-space: pre-wrap;">{{review.body}}</p>

сейчас

<p style = "margin-bottom: 2rem; white-space: pre-wrap;" [innerHTML] = "review.body"></p>

Другие вопросы по теме