所以我试图制作一个可以操作FormControl的指令.
似乎如果我使用长语法来在模板中声明表单控件,我可以将控件传递给指令,以便将它作为直接@Input()绑定; 即:使用以下模板:
<form [formGroup]="myForm">
<input type="text" id="myText" [formControl]="myForm.controls['myText']" my-directive>
</form>
Run Code Online (Sandbox Code Playgroud)
以下组件逻辑:
@Component({
// Properties go here.
})
class MyComponent {
myForm: FormGroup;
constructor(fb: FormBuilder) {
// Constructor logic...
}
ngOnInit() {
this.myForm = this.fb.group({
"myText": [""]
});
}
}
Run Code Online (Sandbox Code Playgroud)
该指令看起来像:
@Directive({
selector: "[my-directive]"
})
class MyDirective {
Input() formControl: FormControl;
}
Run Code Online (Sandbox Code Playgroud)
但是,如果我在模板中使用formControlName语法:
<form [formGroup]="myForm">
<input type="text" id="myText" formControlName="myText" my-directive>
</form>
Run Code Online (Sandbox Code Playgroud)
我如何在指令中引用(隐式?)make FormControl?