为什么我的使用反应式表单的角度组件不能同时包含@Input和@HostBinding?

时间:2019-02-13 04:36:33

标签: angular angularjs-directive angular6 angular-reactive-forms

我遇到一个问题,我只能看到@Input或@HostBinding显示之一,而不能同时看到两者。 我想要什么

environment variables

如果我具有以下条件,则该标签显示为正常,如此屏幕快照所示,仅包含标签,但标签下方没有数据(这很好,因为尚未添加该部分)

enter image description here

<label-and-item label="Item Type"></label-and-item>

和组件

export class ItemAndLabelComponent {
  @Input() label: string;
}

使用html

<label>{{label}}</label>
<ng-content></ng-content>

但是一旦添加了如下所示的@Hostbinding,我确实会看到绑定数据,但是现在标签丢失了。

enter image description here

<label-and-item label="Item Type" controlName="sType"></label-and-item>

export class ItemAndLabelComponent {
  @Input() label: string;
  @Input() controlName: string;

  constructor(@Optional() private parent: ControlContainer) {}

  @HostBinding('textContent')
  get controlValue() {
    return this.parent ? this.parent.control.get(this.controlName).value : '';
  }
}

<label>{{label}}</label>
<ng-content></ng-content>

我使用@Hostbinding是因为我想获取与简单元素上的表单控件名称匹配的表单数据。我不想使用输入,选择,文本区域或任何具有“值”属性的东西,因此无法使用formControlName。 对此造成的任何想法深表感谢。

0 个答案:

没有答案