HostBinding FormControl 到指令中的输入
HostBinding a FormControl to a input within a Directive
我在通过附加到输入的指令内的 HostBinding 将 formControl 添加到输入时遇到问题。
请让我知道这是否是一种可能的方法,如果是的话如何去做。
输入
<input matInput searchInput>
指令(搜索输入)
@Directive({
selector: '[searchInput]',
})
export class SearchableSelectDirective implements AfterViewInit {
@HostBinding('attr.[formControl]') control: FormControl = new FormControl('');
ngAfterViewInit(): void {
this.sub = this.control.valueChanges.subscribe((value: string) => {
console.log(value);
});
}
}
要访问 FormControl 引用,您需要使用 NgControl
@Directive({
selector: '[searchInput]',
})
export class SearchableSelectDirective implements AfterViewInit {
sub: any;
constructor(private ngControl: NgControl) {}
ngAfterViewInit(): void {
this.sub = this.ngControl.valueChanges.subscribe((value: string) => {
console.log(value);
});
}
}
我在通过附加到输入的指令内的 HostBinding 将 formControl 添加到输入时遇到问题。 请让我知道这是否是一种可能的方法,如果是的话如何去做。
输入
<input matInput searchInput>
指令(搜索输入)
@Directive({
selector: '[searchInput]',
})
export class SearchableSelectDirective implements AfterViewInit {
@HostBinding('attr.[formControl]') control: FormControl = new FormControl('');
ngAfterViewInit(): void {
this.sub = this.control.valueChanges.subscribe((value: string) => {
console.log(value);
});
}
}
要访问 FormControl 引用,您需要使用 NgControl
@Directive({
selector: '[searchInput]',
})
export class SearchableSelectDirective implements AfterViewInit {
sub: any;
constructor(private ngControl: NgControl) {}
ngAfterViewInit(): void {
this.sub = this.ngControl.valueChanges.subscribe((value: string) => {
console.log(value);
});
}
}