Я бы очень хорошо понял концепцию Angular @HostBinding. К сожалению, моя книга очень хорошая, но эта концепция не очень ясно объяснена.
Смотри пожалуйста код:
@Component({
selector: 'app-test-component',
templateUrl: './test-component.component.html',
styleUrls: ['./test-component.component.css']
})
export class TestComponentComponent implements OnInit {
@Input() dataModel:AppModel;
@HostBinding('attr.class') cssClass = 'alfa';
constructor() {
(...)
Мое личное объяснение: «привязка к хосту позволяет установить что-либо в элементе хоста (в данном случае тег app-test-component) внутри самого компонента (другими словами, из этого файла, который я упоминал ниже); в этом случае я установил атрибут класса этого тега в переменную с именем cssClass и с атрибутом 'alfa' ". Это правильно?
В этом случае, если я определил стиль 'alfa' в соответствующем css-файле, почему я не вижу этот стиль (например, цвет фона или что-то еще) на странице, где отображается мой компонент?
Большое спасибо!
РЕДАКТИРОВАТЬ: Мне нужно очень хорошо понять строку
@HostBinding('attr.class') cssClass = 'alfa';
Не могли бы вы подтвердить, что это в точности эквивалентно "установить атрибут класса элемента шаблона в строку cssClass, присвоенную значению 'alfa'"? (или, другими словами, это то же самое, что инструкция "class = 'alfa'" в основном теге шаблона)
И, пожалуйста, напишите мне также пример с тем же результатом, но без использования @hostbinding? Я уверен, что сравнение двух эквивалентных решений в сравнении может быть очень полезным для меня.
Большое спасибо за ваше терпение!