Ej1 api migration in Angular Auto complete component

4 Apr 202313 minutes to read

This article describes the API migration process of AutoComplete component from Essential JS 1 to Essential JS 2.

MultiSelect concept is not present in EJ2-AutoComplete. If you want to use multiselection support in autocomplete, we suggest you to use MultiSelect component.

DataBinding

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: dataSource
<input type="text" id="databindinglocal" ej-autocomplete [dataSource]="states" />
Property: datasource
<ejs-autocomplete [datasource]="data"></ejs-autocomplete>
Fields for mapping Property: fields
<input type="text" id="databindinglocal" ej-autocomplete [fields]="fields" />
Property: fields
<ejs-autocomplete id="country" [fields]="fields"></ejs-autocomplete>
Query Property: query
<input type="text" id="databindinglocal" ej-autocomplete [query]="query"/>
Property: query
<ejs-autocomplete id="autocomplete" [query]="ej.Query().from('Customers').take(10)"></ejs-autocomplete>
Begin event Event: actionBegin
<input type="text" id="databindinglocal" ej-autocomplete (actionBegin)="actionBegin($event)"/>
Event: actionBegin
<ejs-autocomplete id="autocomplete" (actionBegin)="onBegin($event)"></ejs-autocomplete>
Complete event Event: actionComplete
<input type="text" id="databindinglocal" ej-autocomplete (actionComplete)="actionComplete($event)"/>
Event: actionComplete
<ejs-autocomplete id="autocomplete" (actionComplete)="onComplete($event)"></ejs-autocomplete>
Failure event Event: actionFailure
<input type="text" id="databindinglocal" ej-autocomplete (actionFailure)="actionFailure($event)"/>
Event: actionFailure
<ejs-autocomplete id="autocomplete" (actionFailure)="onFailure($event)"></ejs-autocomplete>
Success event Event: actionSuccess
<input type="text" id="databindinglocal" ej-autocomplete (actionSuccess)="actionSuccess($event)"/>
Not Applicable

Filtering

Behavior API in Essential JS 1 API in Essential JS 2
Case sensitivity Property: caseSensitiveSearch
<input type="text" id="databindinglocal" ej-autocomplete [caseSensitiveSearch]="true" />
Property: ignoreCase
<ejs-autocomplete id="autocomplete" [ignoreCase]="ignoreCase"></ejs-autocomplete>
Accent effective search Not applicable Property : ignoreAccent
ejs-autocomplete id="autocomplete" [ignoreAccent]="ignoreAccent"></ejs-autocomplete>
Filtering Type Property: filterType
<input type="text" id="databindinglocal" ej-autocomplete [filterType]="filterType" />
Property: filterType
<ejs-autocomplete id="autocomplete" [filterType]="filterType"></ejs-autocomplete>
Autofill Property: enableAutoFill
<input type="text" id="databindinglocal" ej-autocomplete [enableAutoFill]="enableAutoFill" />
Property: autoFill
ejs-autocomplete id="autocomplete" [autoFill]="autoFill"></ejs-autocomplete>
Highlight the search word Property: highlightSearch <input type="text" id="databindinglocal" ej-autocomplete [highlightSearch]="highlightSearch" /> Property: highlight
ejs-autocomplete id="autocomplete" [highlight]="highlight"></ejs-autocomplete>
No of items to be shown Property: itemsCount
<input type="text" id="databindinglocal" ej-autocomplete [itemsCount]="itemsCount" />
Property: suggestionCount
<ejs-autocomplete id="autocomplete" [suggestionCount]="suggestionCount"></ejs-autocomplete>
Minimum characters to enter Property: minCharacter
<input type="text" id="databindinglocal" ej-autocomplete [minCharacter]="minCharacter" />
Property: minLength
ejs-autocomplete id="autocomplete" [minLength]="minLength"></ejs-autocomplete>
Search Method: search
<input type="text" id="databindinglocal" ej-autocomplete />

$("#autocomplete").ejAutoComplete("search");
Not applicable

Placeholder

Behavior API in Essential JS 1 API in Essential JS 2
Watermark text Property: watermarkText
<input type="text" id="databindinglocal" ej-autocomplete [watermarkText]="select" />
Property: placeholder
ejs-autocomplete id="autocomplete" [placeholder]="select"></ejs-autocomplete>
Floating of watermark text Not applicable Property: floatLabelType
ejs-autocomplete id="autocomplete" [floatLabelType]="floatLabelType"></ejs-autocomplete>
Behavior API in Essential JS 1 API in Essential JS 2
No records showing Property: showEmptyResultText
<input type="text" id="databindinglocal" ej-autocomplete [showEmptyResultText]="true" />
Not applicable
Popupbutton Property: showPopupButton
<input type="text" id="databindinglocal" ej-autocomplete [showPopupButton]="true" />
Property: showPopupButton
<ejs-autocomplete id="autocomplete" [showPopupButton]="true"></ejs-autocomplete>
Clear button Property: showResetIcon
<input type="text" id="databindinglocal" ej-autocomplete [showResetIcon]="true" />
Property: showClearButton
<ejs-autocomplete id="autocomplete" [showClearButton]="true"></ejs-autocomplete>
Animation Property: animateType
<input type="text" id="databindinglocal" ej-autocomplete [animateType]="animateType" />
Not Applicable
Focusing the list item Property: autoFocus
<input type="text" id="databindinglocal" ej-autocomplete [autoFocus]="true" />
Not applicable
Delaying the popup open time Property: delaySuggestionTimeout
<input type="text" id="databindinglocal" ej-autocomplete [delaySuggestionTimeout]="delaySuggestionTimeout" />
Not applicable
Popup text when there is no popup items Property: emptyResultText
<input type="text" id="databindinglocal" ej-autocomplete [emptyResultText]="no records" />
https://ej2.syncfusion.com/angular/demos/#/material/auto-complete/template
Enable/disable the duplicate option Property: enableDistinct
<input type="text" id="databindinglocal" ej-autocomplete [enableDistinct]="true" />
Not applicable
Popup height Property: popupHeight
<input type="text" id="databindinglocal" ej-autocomplete [popupHeight]="popupHeight" />
Property: popupHeight
<ejs-autocomplete id="autocomplete" [popupHeight]="300px"></ejs-autocomplete>
Popup Width Property: popupWidth
<input type="text" id="databindinglocal" ej-autocomplete [popupWidth]="popupWidth" />
Property: popupWidth
<ej-autocomplete id="autocomplete" [popupWidth]="300px"></ej-autocomplete>
Open popup Method: open
<input type="text" id="databindinglocal" ej-autocomplete />
$("#autocomplete").ejAutoComplete("open");
Method: showPopup
<ej-autocomplete id="autocomplete"></ej-autocomplete>

@ViewChild('sample') public obj: AutoCompleteComponent;
obj.open();
Close event Event: close
<input type="text" id="databindinglocal" ej-autocomplete (close)="close($event)" />
Event: close
<ej-autocomplete id="autocomplete" (close)="onClose($event)"></ej-autocomplete>
Open event Event: open
<input type="text" id="databindinglocal" ej-autocomplete (open)="open($event)" />
Event: open
<ej-autocomplete id="autocomplete" (open)="onOpen($event)"></ej-autocomplete>

CSS

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: cssClass
<input type="text" id="databindinglocal" ej-autocomplete [cssClass]="cssClass" />
Property: cssClass
<ej-autocomplete id="autocomplete" [cssClass]="customClass"></ej-autocomplete>
Height Property: height
<input type="text" id="databindinglocal" ej-autocomplete [height]="height" />
Acheivable through the cssClass property.
showRoundedCorner Property: showRoundedCorner
<input type="text" id="databindinglocal" ej-autocomplete [showRoundedCorner]="showRoundedCorner" />
Acheivable through the cssClass property.
Width Property: width
<input type="text" id="databindinglocal" ej-autocomplete [width]="width" />
Property: width
<ej-autocomplete id="autocomplete" [width]="300px"></ej-autocomplete>
Visibility Property: visible
<input type="text" id="databindinglocal" ej-autocomplete [visible]="true" />
Acheivable through the cssClass property.

Grouping

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: fields
<input type="text" id="databindinglocal" ej-autocomplete [fields]="fields" />
Property: fields
<ejs-autocomplete id="country" [fields]="fields"></ejs-autocomplete>

Localization

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: locale
<input type="text" id="databindinglocal" ej-autocomplete [locale]="fr-FE" />
Property: locale
<ejs-autocomplete id="country" [locale]="locale"></ejs-autocomplete>

Template

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: template <input type="text" id="databindinglocal" ej-autocomplete [template]="template" /> Property: itemTemplate
<ejs-autocomplete id="employees" [itemTemplate]="itemTemplate">></ejs-autocomplete>
Group Template Not Applicable Property: groupTemplate
<ejs-autocomplete id="employees" [groupTemplate]="groupTemplate"></ejs-autocomplete>
ValueTemplate Not applicable Property: valueTemplate
<ejs-autocomplete id="employees" valueTemplate="data"></ejs-autocomplete>
Header Template Not applicable Property: headerTemplate
<ejs-autocomplete id="employees" [headerTemplate]="headerTemplate"></ejs-autocomplete>
FooterTemplate Not applicable Property: footerTemplate
<ejs-autocomplete id="employees" [footerTemplate]="footerTemplate"></ejs-autocomplete>
No records Template Not applicable Property: noRecordsTemplate
<ejs-autocomplete id="employees" [noRecordsTemplate]="noRecordsTemplate"></ejs-autocomplete>
Action failure Template Not applicable Property: actionFailureTemplate
<ejs-autocomplete id="employees" [actionFailureTemplate]="actionFailureTemplate"></ejs-autocomplete>

Sorting

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: allowSorting
<input type="text" id="databindinglocal" ej-autocomplete [allowSorting]="true" />
Acheivable through the sortOrder property.
Order of sorting Property: sortOrder
<input type="text" id="databindinglocal" ej-autocomplete [sortOrder]="sortOrder" />
Property: sortOrder
<ejs-autocomplete id="country" [sortOrder]="sortOrder"></ejs-autocomplete>

Accessibility

Behavior API in Essential JS 1 API in Essential JS 2
RTL support Property: enableRtl
<input type="text" id="databindinglocal" ej-autocomplete [enableRtl]="true" />
Property: enableRtl
<ejs-autocomplete id="country" [enableRtl]="true"></ejs-autocomplete>

Selection

Behavior API in Essential JS 1 API in Essential JS 2    
Selecting particular value Property: selectValueByKey
<input type="text" id="databindinglocal" ej-autocomplete [selectValueByKey]="selectValueByKey" />
Acheivable through the value property. Property: value
<input type="text" id="databindinglocal" ej-autocomplete [value]="value" />
Property: value
<ejs-autocomplete id="country" [value]="data"></ejs-autocomplete>
Selecting particular text Property: text
<input type="text" id="databindinglocal" ej-autocomplete [text]="text" />
Not applicable    
Selecting particular value Method: selectValueByKey
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.selectValueByKey("key")
Acheivable through the value property.    
Selecting particular text Method: selectValueByText
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.selectValueByText("key")
Not applicable    
Select event Event: select
<input type="text" id="databindinglocal" ej-autocomplete (select)="select($event)" />
Event: select
<ejs-autocomplete id="country" (select)="select($event)"></ejs-autocomplete>
   

Miscellaneous

Behavior API in Essential JS 1 API in Essential JS 2
Enable/disable Property: enabled
<input type="text" id="databindinglocal" ej-autocomplete [enabled]="true" />
Property: enabled
<ejs-autocomplete id="country" [enabled]="true"></ejs-autocomplete>
Enable persistence Property: enablePersistence
<input type="text" id="databindinglocal" ej-autocomplete [enablePersistence]="true" />
Property: enablePersistence
<ejs-autocomplete id="country" [enablePersistence]="true"></ejs-autocomplete>
Loading icon Property: showLoadingIcon
<input type="text" id="databindinglocal" ej-autocomplete [showLoadingIcon]="true" />
By default,it is showing
Read only Property: readOnly
<input type="text" id="databindinglocal" ej-autocomplete [readOnly]="true" />
Property: readOnly <ej-autocomplete id="autocomplete" [readOnly]="true"></ej-autocomplete>
Disable Method: disable
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.disable();
Acheivable through the enabled property.

Common

| Behavior | API in Essential JS 1 | API in Essential JS 2 |
| — | — | — |
| Addition of new option watermark text | Property: addNewText
<input type="text" id="databindinglocal" ej-autocomplete [addNewText]="addNewText" /> | Not applicable |
| Addition of new item | Property: allowAddNew
<input type="text" id="databindinglocal" ej-autocomplete [allowAddNew]="allowAddNew" /> | Property: allowCustom
<ej-autocomplete id="autocomplete" [allowCustom]="true"></ej-autocomplete>|
| Reset the autocomplete | Property: showResetIcon
<input type="text" id="databindinglocal" ej-autocomplete [showResetIcon]="showResetIcon" />|Property: showClearIcon
<ejs-autocomplete id="country" [showClearIcon]="true"></ejs-autocomplete> |
| Destroy | Method: destroy
<input type="text" id="autocomplete" ej-autocomplete />
$("#autocomplete").ejAutoComplete("destroy");| Method: destroy
<ejs-autocomplete id="country"></ejs-autocomplete>

@ViewChild('sample') public autoObj: AutoCompleteComponent;

autoObj.destroy();|
| Reset the autocomplete | Method: clearText
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.clearText(); | <ej-autocomplete id="autocomplete" [value]=""></ej-autocomplete> |
| Multicolumn | Property: multiColumnSettings
<ej-autocomplete id="autocomplete" datasource="ViewBag.datasource"><e-multicolumnsettings enable="true" show-header="true" string-format="{0} ({1})" search-column-indices="@val.SearchColumnIndices"><e-multi-columns><e-multi-column field="UniqueKey" header-text="Unique Key"></e-multi-column><e-multi-column field="Text" header-text="Text"></e-multi-column></e-multi-columns></e-multicolumnsettings></ej-autocomplete> |Not applicable |
| Hide the Autocomplete | Method: hide
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.hide(); | Acheivable through the cssClass property.
| Getting particular text | Method: getActiveText
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.getActiveText();|Not applicable |
| Getting particular value | Method: getValue
<input type="text" id="databindinglocal" ej-autocomplete />
@ViewChild('sample') public obj: AutoCompleteComponent;
obj.getValue(); |**Acheivable through the [value](https://ej2.syncfusion.com/angular/documentation/api/auto-complete/#value) property.** | | **Change event** | **Event:** *change*<br/><input type=”text” id=”databindinglocal” ej-autocomplete (change)=”change($event)” />|**Event:** *change* <br/><ejs-autocomplete id=”country” (change)=”onChange($event)”></ejs-autocomplete>| | **Create event** | **Event:** *create* <br/><input type=”text” id=”databindinglocal” ej-autocomplete (create)=”create($event)” />|**Event:** *created* <br/><ejs-autocomplete id=”country” (created)=”onCreated($event)”></ejs-autocomplete>| | **Destroy event** | **Event:** *destroy* <br/><input type=”text” id=”databindinglocal” ej-autocomplete (destroy)=”destroy($event)” /> |**Event:** *destroyed* <br/><ejs-autocomplete id=”country” (destroyed)=”onDestroy($event)”></ejs-autocomplete>| | **Focus out event** | **Event**: *focusOut*<br/><input type=”text” id=”databindinglocal” ej-autocomplete (focusOut)=”focusOut($event)” />| **Event:** *blur* <br/><ejs-autocomplete id=”country” (blur)=”onChange($event)”></ejs-autocomplete> | | **Focus in event** | **Event** : *focusIn*<br/><input type=”text” id=”databindinglocal” ej-autocomplete (focusIn)=”focusIn($event)” /> | **Event:** *focus* <br/><ejs-autocomplete id=”country” (focus)=”onFocus($event)”></ejs-autocomplete>` |