我遇到一个问题,我只能看到@Input或@HostBinding显示之一,而不能同时看到两者。 我想要什么
如果我具有以下条件,则该标签显示为正常,如此屏幕快照所示,仅包含标签,但标签下方没有数据(这很好,因为尚未添加该部分)
<label-and-item label="Item Type"></label-and-item>
和组件
export class ItemAndLabelComponent {
@Input() label: string;
}
使用html
<label>{{label}}</label>
<ng-content></ng-content>
但是一旦添加了如下所示的@Hostbinding,我确实会看到绑定数据,但是现在标签丢失了。
<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。 对此造成的任何想法深表感谢。