1

我无法通过附加到输入的指令内的 HostBinding 将 formControl 添加到输入。请让我知道这是否是一种可能的方法,如果可以,该怎么做。

输入

<input matInput searchInput>

指令 (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);
        });
    }
}
4

1 回答 1

2

要访问您需要使用的 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);
        });
    }
}
于 2020-05-01T15:28:03.373 回答