Detect Input Focus Using Angular 2+

后端 未结 4 774
Happy的楠姐
Happy的楠姐 2020-12-24 10:23

I\'m trying to create an auto-complete list that appears as you type, but disappears when you click elsewhere on the document. How do I detect that a form input is focused u

4条回答
  •  借酒劲吻你
    2020-12-24 11:05

    You could also use FocusMonitor from @angular/cdk.

    https://material.angular.io/guide/creating-a-custom-form-field-control#focused

    focused = false;
    
    constructor(fb: FormBuilder, private fm: FocusMonitor, private elRef: ElementRef) {
      ...
      fm.monitor(elRef.nativeElement, true).subscribe(origin => {
        this.focused = !!origin;
        this.stateChanges.next();
      });
    }
    
    ngOnDestroy() {
      ...
      this.fm.stopMonitoring(this.elRef.nativeElement);
    }

提交回复
热议问题