Class IgxComboComponent

Hierarchy

Implements

  • DoCheck
  • OnInit
  • IgxComboBase
  • AfterViewInit
  • ControlValueAccessor
  • OnInit
  • OnDestroy
  • EditorProvider

Constructors

constructor

  • new IgxComboComponent(elementRef: ElementRef, cdr: ChangeDetectorRef, selection: IgxSelectionAPIService, comboAPI: IgxComboAPIService, _displayDensityOptions: IDisplayDensityOptions, _injector: Injector): IgxComboComponent

Properties

addItemTemplate

addItemTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.addItemTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboAddItem>
         <button class="combo__add-button">
             Click to add item
         </button>
     </ng-template>
 </igx-combo>

allowCustomValues

allowCustomValues: boolean = false

Controls whether custom values can be added to the collection

// get
let comboAllowsCustomValues = this.combo.allowCustomValues;
<!--set-->
<igx-combo [allowCustomValues]='true'></igx-combo>

ariaLabelledBy

ariaLabelledBy: string

An @Input property that set aria-labelledby attribute

<igx-combo [ariaLabelledBy]="'label1'">

clearIconTemplate

clearIconTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering the combo CLEAR button

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.clearIconTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboClearIcon>
         <igx-icon>clear</igx-icon>
     </ng-template>
 </igx-combo>

disabled

disabled: boolean = false

An @Input property that enabled/disables combo. The default is false.

<igx-combo [disabled]="'true'">

emptyTemplate

emptyTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering the ADD BUTTON in the combo drop down

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.emptyTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboEmpty>
         <div class="combo--empty">
             There are no items to display
         </div>
     </ng-template>
 </igx-combo>

filterable

filterable: boolean = true

An @Input property that enabled/disables filtering in the list. The default is true.

<igx-combo [filterable]="'false'">

footerTemplate

footerTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering the FOOTER for the combo items list

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.footerTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboFooter>
         <div class="combo__footer">
             This is a custom footer
         </div>
     </ng-template>
 </igx-combo>

headerItemTemplate

headerItemTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering HEADER ITEMS for groups in the combo list

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.headerItemTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboHeaderItem let-item let-key="groupKey">
         <div class="custom-item--group">Group header for {{ item[key] }}</div>
     </ng-template>
 </igx-combo>

headerTemplate

headerTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering the HEADER for the combo items list

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.headerTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboHeader>
         <div class="combo__header">
             This is a custom header
         </div>
     </ng-template>
 </igx-combo>

id

id: string = `igx-combo-${NEXT_ID++}`

Gets/gets combo id.

// get
let id = this.combo.id;
<!--set-->
<igx-combo [id]='combo1'></igx-combo>

itemTemplate

itemTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering ITEMS in the combo list

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.itemTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboItem>
         <div class="custom-item" let-item let-key="valueKey">
             <div class="custom-item__name">{{ item[key] }}</div>
             <div class="custom-item__cost">{{ item.cost }}</div>
         </div>
     </ng-template>
 </igx-combo>

itemsWidth

itemsWidth: string

Configures the drop down list width

// get
let myComboItemsWidth = this.combo.itemsWidth;
<!--set-->
<igx-combo [itemsWidth] = '"180px"'></igx-combo>

onAddition

onAddition: EventEmitter<IComboItemAdditionEvent> = new EventEmitter<IComboItemAdditionEvent>()

Emitted when an item is being added to the data collection

<igx-combo (onAddition)='handleAdditionEvent()'></igx-combo>

onClosed

onClosed: EventEmitter<void> = new EventEmitter<void>()

Emitted after the dropdown is closed

<igx-combo (onClosed)='handleClosed()'></igx-combo>

onClosing

onClosing: EventEmitter<CancelableBrowserEventArgs & IBaseEventArgs> = new EventEmitter<CancelableBrowserEventArgs & IBaseEventArgs>()

Emitted before the dropdown is closed

<igx-combo (onClosing)='handleClosing($event)'></igx-combo>

onDataPreLoad

onDataPreLoad: EventEmitter<any> = new EventEmitter<any>()

Emitted when new chunk of data is loaded from the virtualization

<igx-combo (onDataPreLoad)='handleDataPreloadEvent()'></igx-combo>

onDensityChanged

onDensityChanged: EventEmitter<IDensityChangedEventArgs> = new EventEmitter<IDensityChangedEventArgs>()

onOpened

onOpened: EventEmitter<void> = new EventEmitter<void>()

Emitted after the dropdown is opened

<igx-combo (onOpened)='handleOpened()'></igx-combo>

onOpening

onOpening: EventEmitter<CancelableEventArgs & IBaseEventArgs> = new EventEmitter<CancelableEventArgs & IBaseEventArgs>()

Emitted before the dropdown is opened

<igx-combo onOpening='handleOpening($event)'></igx-combo>

onSearchInput

onSearchInput: EventEmitter<Object> = new EventEmitter()

Emitted when the value of the search input changes (e.g. typing, pasting, clear, etc.)

<igx-combo (onSearchInput)='handleSearchInputEvent()'></igx-combo>

onSelectionChange

onSelectionChange: EventEmitter<IComboSelectionChangeEventArgs> = new EventEmitter<IComboSelectionChangeEventArgs>()

Emitted when item selection is changing, before the selection completes

<igx-combo (onSelectionChange)='handleSelection()'></igx-combo>

overlaySettings

overlaySettings: OverlaySettings = null

Set custom overlay settings that control how the combo's list of items is displayed. Set:

<igx-combo [overlaySettings] = "customOverlaySettings"></igx-combo>
 const customSettings = { positionStrategy: { settings: { target: myTarget } } };
 combo.overlaySettings = customSettings;

Get any custom overlay settings used by the combo:

 const comboOverlaySettings: OverlaySettings = myCombo.overlaySettings;

placeholder

placeholder: any

Defines the placeholder value for the combo value field

// get
let myComboPlaceholder = this.combo.placeholder;
<!--set-->
<igx-combo [placeholder]='newPlaceHolder'></igx-combo>

searchPlaceholder

searchPlaceholder: string = "Enter a Search Term"

Defines the placeholder value for the combo dropdown search field

// get
let myComboSearchPlaceholder = this.combo.searchPlaceholder;
<!--set-->
<igx-combo [searchPlaceholder]='newPlaceHolder'></igx-combo>

toggleIconTemplate

toggleIconTemplate: TemplateRef<any> = null

The custom template, if any, that should be used when rendering the combo TOGGLE(open/close) button

// Set in typescript
const myCustomTemplate: TemplateRef<any> = myComponent.customTemplate;
myComponent.combo.toggleIconTemplate = myCustomTemplate;
<!-- Set in markup -->
 <igx-combo #combo>
     ...
     <ng-template igxComboToggleIcon let-collapsed>
         <igx-icon>{{ collapsed ? 'remove_circle' : 'remove_circle_outline'}}</igx-icon>
     </ng-template>
 </igx-combo>

type

type: string = "box"

An @Input property that sets how the combo will be styled. The allowed values are line, box, border and search. The default is box.

<igx-combo [type]="'line'">

valueKey

valueKey: string = null

Combo value data source property.

// get
let myComboValueKey = this.combo.valueKey;
<!--set-->
<igx-combo [valueKey]='myKey'></igx-combo>

width

width: string

Sets the style width of the element

// get
let myComboWidth = this.combo.width;
<!--set-->
<igx-combo [width]='250px'></igx-combo>

Accessors

collapsed

  • get collapsed(): boolean

data

  • get data(): any[]
  • set data(val: any[]): void

displayDensity

displayKey

  • get displayKey(): string
  • set displayKey(val: string): void
  • Combo text data source property.

    // get
    let myComboDisplayKey = this.combo.displayKey;
    
    // set
    this.combo.displayKey = 'val';
    
    <!--set-->
    <igx-combo [displayKey]='myDisplayKey'></igx-combo>

    Returns string

  • Combo text data source property.

    // get
    let myComboDisplayKey = this.combo.displayKey;
    
    // set
    this.combo.displayKey = 'val';
    
    <!--set-->
    <igx-combo [displayKey]='myDisplayKey'></igx-combo>

    Parameters

    • val: string

    Returns void

groupKey

  • get groupKey(): string
  • set groupKey(val: string): void
  • The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].

    // get
    let currentGroupKey = this.combo.groupKey;

    Returns string

  • The item property by which items should be grouped inside the items list. Not usable if data is not of type Object[].

    <!--set-->
    <igx-combo [groupKey]='newGroupKey'></igx-combo>

    Parameters

    • val: string

    Returns void

itemHeight

  • get itemHeight(): number
  • set itemHeight(val: number): void
  • Configures the drop down list item height

    // get
    let myComboItemHeight = this.combo.itemHeight;
    <!--set-->
    <igx-combo [itemHeight]='32'></igx-combo>

    Returns number

  • Configures the drop down list item height

    // get
    let myComboItemHeight = this.combo.itemHeight;
    <!--set-->
    <igx-combo [itemHeight]='32'></igx-combo>

    Parameters

    • val: number

    Returns void

itemsMaxHeight

  • get itemsMaxHeight(): number
  • set itemsMaxHeight(val: number): void
  • Configures the drop down list height

    // get
    let myComboItemsMaxHeight = this.combo.itemsMaxHeight;
    <!--set-->
    <igx-combo [itemsMaxHeight]='320'></igx-combo>

    Returns number

  • Configures the drop down list height

    // get
    let myComboItemsMaxHeight = this.combo.itemsMaxHeight;
    <!--set-->
    <igx-combo [itemsMaxHeight]='320'></igx-combo>

    Parameters

    • val: number

    Returns void

totalItemCount

  • get totalItemCount(): number
  • set totalItemCount(count: number): void
  • Gets total count of the virtual data items, when using remote service.

    // get
    let count = this.combo.totalItemCount;

    Returns number

  • Sets total count of the virtual data items, when using remote service.

    // set
    this.combo.totalItemCount(remoteService.count);

    Parameters

    • count: number

    Returns void

valid

value

  • get value(): string

virtualizationState

Methods

close

  • close(): void
  • A method that closes the combo.

    <button (click)="combo.close()">Close Combo</button>
    <igx-combo #combo></igx-combo>

    Returns void

deselectAllItems

  • deselectAllItems(ignoreFilter?: boolean, event?: Event): void
  • Deselect all (filtered) items

    Parameters

    • Optional ignoreFilter: boolean

      if set to true, deselects all items, otherwise deselects only the filtered ones.

      this.combo.deselectAllItems();
    • Optional event: Event

    Returns void

deselectItems

  • deselectItems(items: Array<any>, event?: Event): void
  • Deselect defined items

    Parameters

    • items: Array<any>

      items to deselected

      this.combo.deselectItems(["New York", "New Jersey"]);
    • Optional event: Event

    Returns void

ngDoCheck

  • ngDoCheck(): void

open

  • open(): void
  • A method that opens the combo.

    <button (click)="combo.open()">Open Combo</button>
    <igx-combo #combo></igx-combo>

    Returns void

selectAllItems

  • selectAllItems(ignoreFilter?: boolean, event?: Event): void
  • Select all (filtered) items

    Parameters

    • Optional ignoreFilter: boolean

      if set to true, selects all items, otherwise selects only the filtered ones.

      this.combo.selectAllItems();
    • Optional event: Event

    Returns void

selectItems

  • selectItems(newItems: Array<any>, clearCurrentSelection?: boolean, event?: Event): void
  • Select defined items

    Parameters

    • newItems: Array<any>

      new items to be selected

    • Optional clearCurrentSelection: boolean

      if true clear previous selected items

      this.combo.selectItems(["New York", "New Jersey"]);
    • Optional event: Event

    Returns void

selectedItems

  • selectedItems(): any[]

setSelectedItem

  • setSelectedItem(itemID: any, select?: boolean, event?: Event): void
  • Selects/Deselects a single item

    Parameters

    • itemID: any

      the itemID of the specific item

    • Default value select: boolean = true

      If the item should be selected (true) or deselected (false)

      Without specified valueKey;

      this.combo.valueKey = null;
      const items: { field: string, region: string}[] = data;
      this.combo.setSelectedItem(items[0], true);

      With specified valueKey;

      this.combo.valueKey = 'field';
      const items: { field: string, region: string}[] = data;
      this.combo.setSelectedItem('Connecticut', true);
    • Optional event: Event

    Returns void

toggle

  • toggle(): void
  • A method that opens/closes the combo.

    <button (click)="combo.toggle()">Toggle Combo</button>
    <igx-combo #combo></igx-combo>

    Returns void

triggerCheck

  • triggerCheck(): void