我会很好地理解 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”。这是对的吗?
在这种情况下,如果我在对应的 css 文件中定义了“alfa”样式,为什么在显示我的组件的页面中看不到这种样式(即背景颜色或其他东西)?
非常感谢!
编辑:我需要很好地理解这一行
@HostBinding('attr.class') cssClass = 'alfa';
您能否确认这完全等同于“将模板元素的类属性设置为分配给值'alfa'的字符串cssClass”?(或者,换句话说,与主模板标签中的指令“class='alfa'”相同)
而且,您能否也给我写一个结果相同但不使用@hostbinding 的示例?我敢肯定,在比较中看到这个等效的两个解决方案对我很有帮助。
非常感谢您的耐心等待!