Как заставить angular2 [innerHtml] работать
Я не знаю, что делаю неправильно, поскольку ошибки не сообщаются.
У меня есть класс компонентов
import { Component, OnInit, ViewContainerRef } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
testhtml = "<p>Hello world</p>";
constructor(){}
}
}
И в моем файле шаблона я делаю что-то вроде этого:
<div class="blog-post">[innerHtml]="testhtml"</div>
Но это, похоже, не работает. Есть что-то еще, что мне нужно импортировать?
Я использую angular-cli "version": "1.0.0-beta.26",
Ответы
Ответ 1
Угловое использование {{property}}
для интерполяции значений. Так вы можете отображать обычный текст в своем div
, как, например,
Решение 1:
<div class="blog-post">{{testhtml}}</div>
Но это будет выписывать текст, а не HTML.
Для HTML вам необходимо привязать свойство
Решение 2:
<div class="blog-post" [innerHtml]="testhtml"></div>
Примечание. Я переместил [innerHtml]
внутрь тега div
.
Оставляя квадратные скобки, они привязываются к атрибуту, поэтому вам нужно будет снова интерполировать
Решение 3:
<div class="blog-post" innerHtml="{{testhtml}}"></div>
Предпочтительным является связывание свойств (решение 2).
Ответ 2
Вы должны добавить атрибуты внутри тега, как это.
<div class="blog-post" [innerHtml]="testhtml"></div>