【发布时间】:2016-08-21 06:30:37
【问题描述】:
我想创建一个“my-form-group”组件,由一个标签、任何类型的输入元素(输入、复选框、...)和一个用于验证结果的 div 组成。 我想使用内容投影在标签之后插入输入。像这样的:
<form [ngFormModel]="myForm" (ngSubmit)="onSubmit()">
<my-form-group>
<input type="text"
class="form-control"
[ngFormControl]="myForm.controls['name']">
</my-form-group>
<form>
组件可能如下所示:
@Component({
selector: 'my-form-group',
template: `
<div class="form-group">
<label for="name">Name<span [ngIf]="name.required"> *</span></label>
<ng-content></ng-content>
<div [hidden]="name.valid || name.pristine" class="alert alert-danger">
Please check your input
</div>
</div>`
})
...
我想使用投影组件的状态来隐藏或显示“必需”星号和验证 div。据我所知,可以使用@ContentChild() 和ngAfterContentInit() 访问投影组件,但我认为,我必须有一个特殊的组件才能使用它。
如果我不知道确切的组件,访问投影组件的控制器的最佳方法是什么?
【问题讨论】:
标签: angular angular2-template angular2-directives