Ej1 api migration in EJ2 TypeScript Auto complete control

2 May 202316 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
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { dataSource: countriesField,});
Property: dataSource
let groupObj: AutoComplete = new AutoComplete({dataSource: vegetableData,});groupObj.appendTo('#vegetables');
Fields for mapping Property: fields
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {fields: { key: "index", text: "name" },});
Property: fields
let groupObj: AutoComplete = new AutoComplete({fields: { groupBy: 'Category', value: 'Vegetable' },});groupObj.appendTo('#vegetables');
Query Property: query
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {query: query,});
Property: query
let groupObj: AutoComplete = new AutoComplete({query: ej.Query().requiresCount(),});groupObj.appendTo('#vegetables');
Begin event Event: actionBegin
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {actionBegin: "actionBegin",});
Event: actionBegin
let groupObj: AutoComplete = new AutoComplete({actionBegin: "actionBegin",});groupObj.appendTo('#vegetables');
Complete event Event: actionComplete
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {actionComplete: "actionComplete",});
Event: actionComplete
let groupObj: AutoComplete = new AutoComplete({actionComplete: "actionComplete",});groupObj.appendTo('#vegetables');
Failure event Event: actionFailure
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {actionFailure: "actionFailure",});
Event: actionFailure
let groupObj: AutoComplete = new AutoComplete({actionFailure: "actionFailure",});groupObj.appendTo('#vegetables');
Success event Event: actionSuccess
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {actionSuccess: "actionSuccess",});
Not Applicable

Filtering

Behavior API in Essential JS 1 API in Essential JS 2
Case sensitivity Property: caseSensitiveSearch
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { caseSensitiveSearch: true,});
Property: ignoreCase
let groupObj: AutoComplete = new AutoComplete({ignoreCase: true,});groupObj.appendTo('#vegetables');
Accent effective search Not applicable Property : ignoreAccent
let groupObj: AutoComplete = new AutoComplete({ignoreAccent: true,});groupObj.appendTo('#vegetables');
Filtering Type Property: filterType
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { filterType: "Contains",});
Property: filterType
let groupObj: AutoComplete = new AutoComplete({filterType: filtertype,});groupObj.appendTo('#vegetables');
Autofill Property: enableAutoFill
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { enableAutoFill: true,});
Property:: autoFill
let groupObj: AutoComplete = new AutoComplete({autoFill: true,});groupObj.appendTo('#vegetables');
Highlight the search word Property: highlightSearch var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { highlightSearch: true,}); Property: highlight
let groupObj: AutoComplete = new AutoComplete({highlight: true,});groupObj.appendTo('#vegetables');
No of items to be shown Property: itemsCount
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { itemsCount: 3,});
Property: suggestionCount
let groupObj: AutoComplete = new AutoComplete({suggestionCount: 5,});groupObj.appendTo('#vegetables');
Minimum characters to enter Property: minCharacter
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { minCharacter: 3,});
Property: minLength
let groupObj: AutoComplete = new AutoComplete({minLength: 4,});groupObj.appendTo('#vegetables');
Search Method: search
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { });

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

Placeholder

Behavior API in Essential JS 1 API in Essential JS 2
Watermark text Property: watermarkText
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {watermarkText:"select" });
Property: placeholder
let groupObj: AutoComplete = new AutoComplete({placeholder: "Select",});groupObj.appendTo('#vegetables');
Floating of watermark Text Not applicable Property: floatLabelType
let groupObj: AutoComplete = new AutoComplete({floatLabelType: floatLabelType,});groupObj.appendTo('#vegetables');
Behavior API in Essential JS 1 API in Essential JS 2
No records text Property: emptyResultText
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {emptyResultText:"no records" });
Property: noRecordsTemplate
let groupObj: AutoComplete = new AutoComplete({noRecordsTemplate: noRecordsTemplate,});groupObj.appendTo('#vegetables');
No records showing Property: *showEmptyResultText
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {showEmptyResultText:true })
Not applicable
Popupbutton Property: showPopupButton
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {ShowPopupButton:true })
Property: showPopupButton
let groupObj: AutoComplete = new AutoComplete({showPopupButton: true,});groupObj.appendTo('#vegetables');
Clear button Property: showResetIcon
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {showResetIcon:true })
Property: showClearButton
let groupObj: AutoComplete = new AutoComplete({showClearButton: true,});groupObj.appendTo('#vegetables');
Animation Property: animateType
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {animateType:animateType })
Not Applicable
Focusing the list item Property: autoFocus
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {autoFocus:true })
Not applicable
Delaying the popup open time Property: delaySuggestionTimeout
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {delaySuggestionTimeout:300 })
Not applicable
Popup text when there is no popup items Property: emptyResultText
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {emptyResultText:"no Records" })
https://ej2.syncfusion.com/demos/#/material/auto-complete/template.html
Enable/disable the duplicate option Property: enableDistinct
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {enableDistinct:true })
Not applicable
Popup height Property: popupHeight
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {popupHeight:300px })
Property: popupHeight
let groupObj: AutoComplete = new AutoComplete({popupHeight: 300px,});groupObj.appendTo('#vegetables');
Popup Width Property: popupWidth
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {popupWidth:300px })
Property: popupWidth
let groupObj: AutoComplete = new AutoComplete({popupWidth: 300px,});groupObj.appendTo('#vegetables');
Open popup Method: open
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), { })

$("#autocomplete").ejAutocomplete("open");
Method: showPopup
let groupObj: AutoComplete = new AutoComplete({});groupObj.appendTo('#vegetables');

groupObj.showPopup();
Close event Event: close
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {close:"onClose" })
Event: close
let groupObj: AutoComplete = new AutoComplete({close:"close",});groupObj.appendTo('#vegetables');
Open event Event: open
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {open:"onopen" })
Event: open
let groupObj: AutoComplete = new AutoComplete({open:"open",});groupObj.appendTo('#vegetables');

CSS

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: cssClass
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {cssClass:"cssClass" })
Property: cssClass
let groupObj: AutoComplete = new AutoComplete({cssClass:"cssClass",});groupObj.appendTo('#vegetables');
Height Property: height
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {height:"300px" })
Acheivable through the cssClass property.
showRoundedCorner Property: showRoundedCorner
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {showRoundedCorner:true })
Acheivable through the cssClass property.
Width Property: width
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {width:300px })
Property: width
let groupObj: AutoComplete = new AutoComplete({width:"300px",});groupObj.appendTo('#vegetables');
Visibility Property: visible
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {visible:true })
Acheivable through the cssClass property.

Grouping

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: fields
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {fields: { key: "index", groupBy: "name" },});
Property: fields let groupObj: AutoComplete = new AutoComplete({fields: { groupBy: 'Category', value: 'Vegetable' },});groupObj.appendTo('#vegetables');

Localization

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: Locale
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {lcoale: "fr-FE",});
Property: Locale
let groupObj: AutoComplete = new AutoComplete({locale: "fr-FE"});groupObj.appendTo('#vegetables');

Template

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: template
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {template: "<span><span class='name'>${FirstName}</span><span class ='city'>${City}</span></span>"})
Property: itemTemplate
let groupObj: AutoComplete = new AutoComplete({itemTemplate: "<span><span class='name'>${FirstName}</span><span class ='city'>${City}</span></span>"});groupObj.appendTo('#vegetables');
Group Template Not Applicable Property: groupTemplate
let groupObj: AutoComplete = new AutoComplete({groupTemplate: "<strong>${City}</strong>"});groupObj.appendTo('#vegetables');
ValueTemplate Not applicable Property: valueTemplate
let groupObj: AutoComplete = new AutoComplete({valueTemplate: "<span>${FirstName} - ${City}</span>"});groupObj.appendTo('#vegetables');
Header Template Not applicable Property: headerTemplate
let groupObj: AutoComplete = new AutoComplete({headerTemplate: "<span class='head'><span class='name'>Name</span><span class='city'>City</span></span>",});groupObj.appendTo('#vegetables');
FooterTemplate Not applicable Property: footerTemplate
let groupObj: AutoComplete = new AutoComplete({footerTemplate:"<span class='foot'> Total list items: "+ sportsData.length +"</span>"});groupObj.appendTo('#vegetables');
No records Template Not applicable Property: noRecordsTemplate
let groupObj: AutoComplete = new AutoComplete({noRecordsTemplate:"<span class='norecord'> NO DATA AVAILABLE</span>"});groupObj.appendTo('#vegetables');
Action failure Template Not applicable Property: actionFailureTemplate
let groupObj: AutoComplete = new AutoComplete({actionFailureTemplate:"<span class='action-failure'> Data fetch get fails</span>"});groupObj.appendTo('#vegetables');

Sorting

Behavior API in Essential JS 1 API in Essential JS 2
Default Property: allowSorting
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {allowSorting: true,});
Acheivable through sortOrder property
Order of sorting Property: sortOrder
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {sortOrder: "Ascending",});
Property: sortOrder
let groupObj: AutoComplete = new AutoComplete({sortOrder: "sortOrder"});groupObj.appendTo('#vegetables');

Accessibility

Behavior API in Essential JS 1 API in Essential JS 2
RTL support Property: enableRtl
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {enableRtl: true,});
Property: enableRtl
let groupObj: AutoComplete = new AutoComplete({enableRtl: true});groupObj.appendTo('#vegetables');

Selection

Behavior API in Essential JS 1 API in Essential JS 2
Selecting particular value Property: selectValueByKey
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {selectValueByKey: 1,});
Acheivable through the cssClass property.
Selecting particular value Property: value
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {value: data,});
Property: value
let groupObj: AutoComplete = new AutoComplete({value: "data"});groupObj.appendTo('#vegetables');
Selecting particular text Property: text
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {text: "data",});
Not applicable
Selecting particular value Method: selectValueByKey
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {});

$("#autocomplete").selectValueByKey("key")
Acheivable through the value property.
Selecting particular text Method: selectValueByText
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {});

$("#autocomplete").selectValueByText("key")
Not applicable
Select event Event: select
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {select: "onSelect",});
Event: select
let groupObj: AutoComplete = new AutoComplete({select: "onSelect"});groupObj.appendTo('#vegetables');

Miscellaneous

Behavior API in Essential JS 1 API in Essential JS 2
Enable/disable Property: enabled
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {enabled: true,});
Property: enabled
let groupObj: AutoComplete = new AutoComplete({enabled: true});groupObj.appendTo('#vegetables');
Enable persistence Property: enablePersistence
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {enablePersistence: true,});
Property: enablePersistence
let groupObj: AutoComplete = new AutoComplete({enablePersistence: true});groupObj.appendTo('#vegetables');
Loading icon Property: showLoadingIcon
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {showLoadingIcon: true,});
By default,it is showing
Read only Property: readOnly
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {readOnly: true,});
Property: readOnly let groupObj: AutoComplete = new AutoComplete({readOnly: true});groupObj.appendTo('#vegetables');
Disable Method: disable
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {});

$("#autocomplete").ejAutoComplete("disable");
Achievable through enabled property

Common

| Behavior | API in Essential JS 1 | API in Essential JS 2 |
| — | — | — |
| Addition of new option watermark text | Property: addNewText
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {addNewText:"text"});|Not applicable |
| Addition of new item | Property: allowAddNew
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {allowAddNew: true});|Property: allowCustom
let groupObj: AutoComplete = new AutoComplete({allowCustom: true});groupObj.appendTo('#vegetables');|
| Reset the autocomplete | Property: showResetIcon
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {showResetIcon: true});|Property: showClearIcon
let groupObj: AutoComplete = new AutoComplete({allowCustom: true});groupObj.appendTo('#vegetables');|
| Destroy | Method: destroy
var autocompleteInstance =new ej.Autocomplete($("#autocomplete"), {});

$("#autocomplete").ejAutoComplete("destroy");| Method: destroy
let groupObj: AutoComplete = new AutoComplete({allowCustom: true});groupObj.appendTo('#vegetables');<br/><br/>groupObj.destroy();| | **Reset the autocomplete** | **Method:** *clearText*<br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {});<br/><br/>$(“#autocomplete”).ejAutoComplete(“clearText”); | **By passing empty value to the value property, you can acheive this** | | **Multicolumn** | **Property:** *multiColumnSettings*<br/> var autocompleteInstance =new ej.Autocomplete($(“#selectCar”), {multiColumnSettings:{enable:true,showHeader:true,stringFormat:”{1}”,searchColumnIndices[0,1,2],<br/> columns:[{“field”: “EmployeeID” ,”headerText”:”EmployeeID”},{“field”: “FirstName” , “headerText”:”FirstName”},{“field”: “City” , “headerText”:”City”}]}}); |**Not applicable** | | **Hide the Autocomplete** | **Method:** *hide*<br/><br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {});<br/><br/>$(“#autocomplete”).ejAutoComplete(“hide”); | **By using *css-class* property, you can acheive this.** | **Getting particular text** | **Method:** *getActiveText* <br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {});<br/><br/>$(“#autocomplete”).ejAutoComplete(“getActiveText”);|**By using text property, you can get it.** | | **Getting particular value** | **Method:** *getValue*<br/> var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {});<br/><br/>$(“#autocomplete”).ejAutoComplete(“getValue”); |**By using value property, you can get it.** | | **Change event** | **Event:** *change*<br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {change:”change”});|**Event:** *change* <br/>let groupObj: AutoComplete = new AutoComplete({change: “change”});groupObj.appendTo(‘#vegetables’);| | **Create eventf** | **Event:** *create* <br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {create:”create”});|**Event:** *created* <br/>let groupObj: AutoComplete = new AutoComplete({created: “created”});groupObj.appendTo(‘#vegetables’);| | **Destroy event** | **Event:** *destroy* <br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {destroy:”destroy”}); |**Event:** *destroyed* <br/>let groupObj: AutoComplete = new AutoComplete({destroyed: “destroyed”});groupObj.appendTo(‘#vegetables’);| | **Focus out event** | **Event**: *focusOut*<br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {focusOut:”focusOut”});| **Event:** *blur* <br/>let groupObj: AutoComplete = new AutoComplete({blur: “blur”});groupObj.appendTo(‘#vegetables’); | | **Focus in event** | **Event** : *focusIn*<br/>var autocompleteInstance =new ej.Autocomplete($(“#autocomplete”), {focusIn:”focusIn”}); | **Event:** *focus* <br/>let groupObj: AutoComplete = new AutoComplete({focus: “focus”});groupObj.appendTo(‘#vegetables’);` |