Получение параметров в директивах¶
Директива как и компонент может получать некоторые входные параметры извне. Для этого также используется декоратор @Input
. Возьмем директиву BoldDirective
и, допустим, мы хотим, чтобы у текста при наведении также менялась высота шрифта. Но при этом чтобы нужную высоту шрифта можно было бы задать извне директивы. Для этого изменим ее следующим образом:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
|
В данном случае определяются два входных параметра:
1 2 |
|
Параметр selectedSize
отвечает за высоту шрифта при наведении мыши, а в параметр defaultSize
устанавливает высоту шрифта, когда указатель мыши находится вне границ элемента.
Кроме того, чтобы задействовать значение defaultSize
при запуске приложения, реализуется метод ngOnInit
.
Теперь задействуем эти параметры, изменив код компонента:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
|
При применении директивы мы можем указать все входные параметры и их значения:
1 2 3 |
|
При этом названия параметров заключаются в квадратные скобки, а их значения дополнительно заключаются в одинарные кавычки.
И при наведении на элемент автоматически будет меняться также и высота шрифта:
Теперь пойдем дальше и изменим первый входной параметр:
1 |
|
Здесь в декоратор @Input
передается селектор директивы — bold
. Поэтому чтобы установить этот параметр в шаблоне компонента мы можем напрямую использовать имя директивы:
1 2 3 |
|