@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 плохой практикой. (Лично я не понимаю почему)
Несмотря на ограничения использования, декортор может принести преимущество в плане эффективности, поскольку свойства не привязываются и их не нужно проверять во время цикла обнаружения изменений.