[英]How can I get the classes applied via HTML on an Angular 2 component?
我想使用如下创建的组件:
<vx-alert class="au-upper-center">
<p>Upper Center</p>
</vx-alert>
在vx-alert
组件中,我想获取导致实例化该组件的HTML中应用的类的列表。 最终,我想将其他类附加到vx-alert
组件。 我能够很容易地替换vx-alert
组件类(如下所示):
@Component({
moduleId: module.id,
selector: 'vx-alert',
templateUrl: 'alert.html'
})
export class AlertComponent extends I18N implements OnInit {
@HostBinding('class') private classList:string;
ngOnInit() {
this.classList = 'au-ease-in-out au-20000ms';
}
}
但是,当this.classList
分配为新值时,HTML代码中设置的原始类将被覆盖...因此,如何检索HTML提供的类,以便可以将它们连接到以编程方式确定的类上?
我的柱塞已更新为使用@acdcjunior提供的答案:
您可以考虑vx-alert
的class
属性@Input('class')
输入( @Input('class')
)。 这样,您可以读取其值。
之后,您可以使用@HostBinding('class')
进行修改:
@Component({
moduleId: module.id,
selector: 'vx-alert',
templateUrl: 'alert.html'
})
export class AlertComponent extends I18N implements OnInit {
@Input('class') initialClassList: string;
@HostBinding('class') private classList:string;
ngOnInit() {
this.classList = this.initialClassList + ' au-ease-in-out au-20000ms';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.