Интерполяция в Angular — это синтаксис для отображения компонентных данных в шаблоне с помощью двойных фигурных скобок: {{ expression }}
. Это один из основных способов односторонней привязки данных (one-way data binding) от компонента к представлению.
Пример базовой интерполяции:
<p>Welcome, {{ username }}!</p>
Механизм выполнения:
{{ }}
вычисляется в контексте компонентаПроцесс обновления:
<div>Current count: {{ counter }}</div>
<div>Total: {{ calculateTotal() }}</div>
Важно: Метод будет вызываться при каждой проверке изменений, что может повлиять на производительность.
<div>Sum: {{ a + b }}</div>
<div>Flag is {{ flag ? 'on' : 'off' }}</div>
<div>Full name: {{ fullName }}</div>
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
Нельзя использовать:
=
, +=
и т.д.)new
, typeof
, instanceof
и др.);
или ,
window
, document
)Сложные выражения лучше выносить в методы компонента: ❌ Плохо:
{{ user.orders.length > 0 ? 'Active' : 'Inactive' }}
✅ Лучше:
{{ userStatus }}
get userStatus() {
return this.user.orders.length > 0 ? 'Active' : 'Inactive';
}
Интерполяция — это синтаксический сахар для привязки к свойству textContent
:
<!-- Эти две записи эквивалентны -->
<p>{{ title }}</p>
<p [textContent]="title"></p>
Angular автоматически санитизирует интерполированные значения для предотвращения XSS-атак:
this.unsafeHtml = '<script>alert("XSS")</script>';
<!-- Безопасно - отобразится как текст -->
<div>{{ unsafeHtml }}</div>
textContent
:
<!-- Для статического контента -->
<div textContent="Static value"></div>
<!-- Для динамического -->
<div>{{ dynamicValue }}</div>
{{ expression }}
для отображения данных в шаблонеtextContent
Интерполяция — фундаментальный механизм Angular, который должен быть в арсенале каждого разработчика.