• 개요
@angular/aria/combobox

Combobox

디렉티브

콤보박스 트리거 엘리먼트와 연결된 팝업 위젯을 조정하는 디렉티브입니다.

API

    
      class Combobox extends DeferredContentAware implements OnInit {}
    
    

element

HTMLElement

입력 엘리먼트에 대한 참조입니다.

disabled

InputSignalWithTransform<boolean, unknown>

콤보박스의 비활성화 여부입니다.

readonly

InputSignalWithTransform<boolean, unknown>

콤보박스의 읽기 전용 여부입니다.

softDisabled

InputSignalWithTransform<boolean, unknown>

콤보박스가 포커스를 받을 수 있는 비활성화 상태인지 나타냅니다.

alwaysExpanded

InputSignalWithTransform<boolean, unknown>

콤보박스를 항상 펼쳐진 상태로 유지할지 지정합니다.

tabIndex

InputSignalWithTransform<number | undefined, string | number | undefined>

콤보박스의 tabindex입니다.

expanded

ModelSignal<boolean>

콤보박스가 펼쳐져 있는지 나타냅니다.

value

ModelSignal<string>

콤보박스 입력의 값입니다.

inlineSuggestion

InputSignal<string | undefined>

입력에 표시할 인라인 제안입니다.

ngOnInit

void
@returnsvoid

contentVisible

WritableSignal<boolean>

preserveContent

ModelSignal<boolean>

설명

콤보박스 트리거 엘리먼트와 연결된 팝업 위젯을 조정하는 디렉티브입니다.

ngCombobox 디렉티브는 대화형 트리거 엘리먼트에 직접 적용합니다. 트리거에는 검색이나 자동 완성 동작에 사용하는 편집 가능한 <input> 또는 커스텀 선택 드롭다운에 사용하는 <div> 같은 편집 불가능한 엘리먼트를 사용할 수 있습니다. 포커스와 펼침 상태를 관리하고, 편집 가능한 경우 자동 완성 제안을 조정하며, 탐색 키를 활성 팝업으로 전달합니다.

예제 1: 편집 가능한 자동 완성 입력

<input ngCombobox #combobox="ngCombobox" [(value)]="searchQuery" [(expanded)]="isExpanded" />

<ng-template ngComboboxPopup [combobox]="combobox">
  <div ngComboboxWidget #listbox="ngListbox" ngListbox [(value)]="selectedValues" [activeDescendant]="listbox.activeDescendant()">
    <div ngOption value="first">First Option</div>
    <div ngOption value="second">Second Option</div>
  </div>
</ng-template>

예제 2: 편집 불가능한 커스텀 선택 드롭다운

<div ngCombobox #combobox="ngCombobox" [(expanded)]="isExpanded" class="select-trigger">
  {{selectedValue}}
</div>

<ng-template ngComboboxPopup [combobox]="combobox">
  <div ngComboboxWidget #listbox="ngListbox" ngListbox [(value)]="selectedValues" [activeDescendant]="listbox.activeDescendant()">
    <div ngOption value="first">First Option</div>
    <div ngOption value="second">Second Option</div>
  </div>
</ng-template>
상세 내용으로 이동