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