Как автоматически сфокусировать редактор в содержимом панели расширения при открытии панели расширения в angular?

У меня есть панель расширения с заголовком "Написать ответ". При открытии панели расширения у меня есть редактор перьев.

Мне нужно сфокусировать редактор перьев на расширении панели.

<mat-expansion-panel #panel1>
<mat-expansion-header> <span>"Write a Response"</span> </mat-expansion-header>
<quill-editor [ngModel]="htmlText" (onContentChanged)="onContentChanged($event)" placeholder="placeholder"></quill-editor>
</mat-expansion-panel>

Я попробовал автофокус, cdkFocusInitial, (focus)="myMethod()", но все равно не работает. Может кто поможет?

Спасибо.

1 ответ

Для этого вам нужно будет использовать @ViewChild.

Сначала добавьте идентификатор в quil-editor - #editor

<mat-expansion-panel #panel1>
<mat-expansion-header> <span>"Write a Response"</span> </mat-expansion-header>
<quill-editor #editor [ngModel]="htmlText" (onContentChanged)="onContentChanged($event)" placeholder="placeholder"></quill-editor>
</mat-expansion-panel>

Затем перейдите к файлу ts и импортируйте ViewChild и AfterViewInit из angular/core. затем

export class ComponentName implement AfterViewInit{
@ViewChild('editor') editorElementRef : ElementRef;

  ngAfterViewInit(){
    this.editorElementRef.nativeElement.focus();
  }
}

Таким образом, приведенный выше код перемещает фокус в редактор после инициализации представления.

Другие вопросы по тегам