@Attribute() декоратор

В Angular есть @Attribute() декоратор, который позволяет получить константное значение атрибута, доступное на элементе хоста компонента или директивы. Используется с параметром конструктора для значений которые не меняются в процессе работы.

@Component({
  selector: 'my-comp',
  template: `Type: {{myVar}}`,
})
export class MyComponent {
  constructor(@Attribute('type') public myVar: string) {
    console.log('Attributre =', myVar);
  }
}

Особенности:

  • Любые значения предоставляются в виде строки @Attribute(<---->) type: string
  • Значения являются статическими и не обновляются, как @Input
  • Не может использоваться [attribute] синтаксис привязки
  • Линтер codelyzer считает использование Attribute плохой практикой. (Лично я не понимаю почему)

Несмотря на ограничения использования, декортор может принести преимущество в плане эффективности, поскольку свойства не привязываются и их не нужно проверять во время цикла обнаружения изменений.


Похожие записи

Angular environment variables

Создание и использования переменных окружения в Angular с использованием CLI >= 6 версии.

07 января 2019 г. в Angular

#local variable внутри *ngIf

Представлены 2 варианта решения, как сослаться на локальную переменную шаблона (#myVar) за пределами шаблона:

  • @ViewChild
  • @ViewChildren
12 февраля 2019 г. в Angular

Переиспользуемые анимации в Angular

Для создания анимации используется функция animation(). Для её использования — useAnimation(). Приводится пример переиспользуемой анимации, а также создание анимации через литерал объекта.

09 октября 2018 г. в Angular

Об subscribe() vs async

О предпочтительности использования async pipe. При OnPush стратегии не требуется вызывать markForCheck() внутри подписки +решение с несколькими | async pipes развёрнутых в одну переменную (внутри шаблона).

05 января 2019 г. в Angular