Шаблонные утверждения¶
Шаблонные утверждения — это методы или свойства, которые вы можете использовать в HTML для реагирования на события пользователя. С помощью утверждений шаблонов ваше приложение может привлекать пользователей к таким действиям, как отображение динамического содержимого или отправка форм.
Смотрите Синтаксис шаблона для синтаксиса и фрагментов кода в этом руководстве.
В следующем примере шаблонное утверждение deleteHero() заключается в кавычки справа от знака равенства =, как в (event)="statement".
| 1 2 3 |  | 
Когда пользователь нажимает кнопку Удалить героя, Angular вызывает метод deleteHero() в классе компонента.
Используйте шаблонные утверждения с элементами, компонентами или директивами в ответ на события.
Реагирование на события — это аспект однонаправленного потока данных Angular . Вы можете изменить что угодно в своем приложении в течение одного цикла событий.
Синтаксис¶
Как и шаблонные выражения, шаблонные выражения используют язык, похожий на JavaScript. Однако парсер для шаблонных утверждений отличается от парсера для шаблонных выражений.
Кроме того, парсер шаблонных выражений специально поддерживает как базовое присваивание (=), так и цепочку выражений с запятой (;).
Следующий синтаксис JavaScript и шаблонных выражений недопустим:
- new
- Операторы инкремента и декремента, ++и--
- Операторы присваивания, такие как +=и-=
- битовые операторы, такие как |и&
- Оператор pipe operator
Контекст утверждения¶
У утверждений есть контекст — определенная часть приложения, к которой относится утверждение.
Утверждения могут ссылаться только на то, что находится в контексте утверждения, который обычно является экземпляром компонента. Например, deleteHero() из (click)="deleteHero()" является методом компонента в следующем фрагменте.
| 1 2 3 |  | 
Контекст утверждения может также ссылаться на свойства собственного контекста шаблона. В следующем примере метод обработки события компонента onSave() принимает в качестве аргумента собственный объект шаблона $event.
В следующих двух строках метод deleteHero() принимает входную переменную шаблона, hero, а onSubmit() принимает переменную ссылки шаблона, #heroForm.
| 1 2 3 4 5 6 7 8 9 |  | 
В этом примере контекстом объекта $event, hero и #heroForm является шаблон.
Имена контекстов шаблонов имеют приоритет над именами контекстов компонентов. В предыдущем примере deleteHero(hero), hero является входной переменной шаблона, а не свойством hero компонента.
Передовые методы работы с утверждениями¶
| Практика | Подробности | 
|---|---|
| Краткость | Используйте вызовы методов или базовые присваивания свойств, чтобы сделать шаблонное утверждение минимальным. | 
| Работайте в контексте | Контекстом шаблонного утверждения может быть экземпляр класса компонента или шаблон. Поэтому утверждения шаблона не могут ссылаться на что-либо в глобальном пространстве имен, например, windowилиdocument. Например, утверждения шаблона не могут вызыватьconsole.log()илиMath.max(). | 
 28.02.2022