@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 плохой практикой. (Лично я не понимаю почему)

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


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

Как добавить ng-bootstrap компоненты в проект Angular-CLI?

Покажу на примере нового проекта.

ng new project_name
cd project_name
npm install --save bootstrap@next
npm install --save @ng-bootstrap/ng-bootstrap

В angular-cli.json в секцию style надо добавить наш CSS, чтобы глобально подключить стили.

  "styles": [
    "styles.css",
    "../node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
17 августа 2017 г. в Angular

ngx translate attribute

Используется конструкция

<img src="image.jpg" [alt]="'KEY' | translate"> 
19 августа 2018 г. в Angular

Angular. Редирект по условию

Пример условного перенаправления пользователя в зависимости от некого количества

  • 0 - dashboard
  • 1 - карточка
  • 2 и более - список
09 января 2019 г. в Angular

Angular. Отличие baseHref от deployUrl

  • deployUrl - задаёт путь для статических (js, css) файлов в index.html.
  • baseHref - определяет base, используется в ссылках и маршрутизации (routing) Angular