How to use @HostBinding with @Input properties in Angular 2?
You need to combine the decorators like this:
@HostBinding('class.active') @Input() active: boolean = false;
@HostBinding()
doesn't create property bindings to properties of the host component. That might be worth a bug report though ;-)
I got it working by a workaround with exportAs
and a template variable but that is quite ugly. https://plnkr.co/edit/TobNVn?p=preview
After some consideration, I think it should work. Otherwise I wouldn't know what @HostBinding() src;
would do at all.
@HostBinding('attr.src') src;
or @HostBinding('class.src') src;
are the more common cases.
If your @Input
is an object, you can do:
@Input() settings: Settings;
@HostBinding('class.active')
public get isActive(): boolean {
return this.settings.isActive;
}