样式主机组件基于模型属性

时间:2016-05-18 11:11:35

标签: javascript angular

我知道你可以采用的不同类方法和:主机选择器,但我想根据我在组件类中的属性应用条件托管。

我说我有

@Input('val') val: string;

然后根据该输入我计算元素的高度,并希望通过host的{​​{1}}配置应用它。我该怎么做?

我知道使用@Component的解决方法并使用常规JavaScript应用样式,但我对这种方法并不满意,所以我正在寻找"角度方法"。

由于缺乏Angular网站的文档以及完全没有现实世界的例子,我真的在这里苦苦挣扎。

2 个答案:

答案 0 :(得分:1)

您可以像这样使用@HostBinding装饰器:

@Input('val') val: string;
@HostBinding('attr.width')
width:string;

ngAfterViewInit() {
  this.width = this.val + 'px'; // for example
}

答案 1 :(得分:1)

我认为你可以写这样的东西

  @Input('val') val: string;
  @HostBinding('style.height') get height {
    return this.val + 'px';
  }

在此处查看示例https://plnkr.co/edit/kNSjCFG710xsCUiiBxat?p=preview