首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular14:如何使用ContentChild查询表单组件

Angular14:如何使用ContentChild查询表单组件
EN

Stack Overflow用户
提问于 2022-10-24 11:28:34
回答 1查看 36关注 0票数 0

假设我想将任何表单组件放到包装表单字段组件中。如何查询任何可以使用formControl指令的表单组件。

包装器组件将像这样使用。

代码语言:javascript
复制
@Component({
  selector: 'form-field',
  template: `
    <label >{{label}}</label>
    <ng-content></ng-content>
    <div class="error-message">{{error}}</div>

  `,
  styles: [],
})
export class FormFieldComponent {

  @ContentChild(IDontKnowWhatToPutHere) formComponent: IDontKnowWhatToPutHere 

  @Input() label!: string;

  error: string = "";

  constructor() {}

  ngAfterContentInit() {
    this.listenToErrorsAndSetError(this.formComponent.control)
  }
}

然后,这个组件可以像这样使用。

代码语言:javascript
复制
...
<form-field label="myLabel">
  <input formControlName="myControlName">
</form-field>
<form-field label="myLabel2">
  <custom-multiselect formControlName="myControlName2"></custom-multiselect>
</form-field>
...

这样的事有可能吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-24 11:47:08

可以通过NgControl指令选择所有表单元素。但是ContentChild装饰器只会选择第一个元素。使用ContentChildren访问所有这些文件。

示例:

代码语言:javascript
复制
@ContentChild(NgControl) formComponent: NgControl 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74180441

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档