Hi, I have some problems with autocomplete control.
This is the code I have to replace
<p-autoComplete autoHighlight="true"
#AutocompleteInput="ngModel" [(ngModel)]="vAutocomplete"
forceSelection="true"
immediate="true"
id="Autocomplete"
[suggestions]="filteredAutocompletes"
(completeMethod)="filterAutocompletes($event)"
field="name"
placeholder="{{'Autocomplete' | localize}}"
[minLength]="1"
name="Autocomplete"
(onSelect)="setAutocomplete($event)"
(onClear)="setAutocomplete($event)"
(onKeyUp)="setAutocompleteKU($event)"
inputStyleClass="form-control"
styleClass="width-percent-100">
</p-autoComplete>
And this is how data are loaded from the backend service
filterMyDatas(event): void {
this._MyService.getDatas(event.query).subscribe(MyDatas => {
this.filteredMyDatas =
MyDatas;
});
}
loadAutocomplete(v: string): void {
this.vAutocomplete = null;
if (v == null)
return;
let selectedAutocompletes = new
Array<NameValueOfString>();
let vNV = new NameValueOfString();
vNV.value = v;
selectedAutocompletes.push(vNV);
this._MyService.sendAndGetSelectedDatas(selectedAutocompletes)
.subscribe((Autocompletes:
NameValueOfString[]) => {
if
(Autocompletes != null && Autocompletes.length != 0) {
this.vAutocomplete = Autocompletes[0];
}
});
}
and this is the component I'm trying to create
<ejs-autocomplete #item
ngDefaultControl
[allowCustom]='!forceSelection'
[autofill]='autofill'
(blur)='onBlur($event)'
[cssClass]='styleClass'
(change)='onChange($event)'
(dataBound)='onDataBound($event)'
[dataSource]='suggestions'
[fields]='fields'
(filtering)='onFiltering($event)'
(focus)='onFocus($event)'
[highlight]='highlight'
[minLength]='minLength'
[(ngModel)]='ngModel'
id='item'
[placeholder]='placeholder'
>
<ng-template
#noRecordsTemplate>
<span
class='norecord'>{{'NoItemsFound' | localize}}</span>
</ng-template>
<ng-template
#actionFailureTemplate>
<span
class='action-failure'>{{'Error' | localize}}</span>
</ng-template>
<ng-template
#footerTemplate="" let-data="">
<span
class='foot'> </span>
</ng-template>
</ejs-autocomplete>
I have to load all data in the syncfusion component and I have to preselect the first item.
|
<ejs-autocomplete
id="products"
#remote
[dataSource]="data"
filterType="StartsWith"
[fields]="remoteFields"
[query]="query"
[(ngModel)]="vAutocomplete"
[showPopupButton]="true"
(open)="onOpen($event)"
></ejs-autocomplete>
|
|
public vAutocomplete:string = 'Maria Anders';
|
|
onOpen(e) {
if(!this.isInitial)
{
this.vAutocomplete = e.popup.element.querySelector('li').innerText;
this.isInitial = !this.isInitial;
}
}
|
|
<ejs-combobox id='games' #sample [dataSource]='sportsData' [fields]='fields' [(value)]='value'
[placeholder]='waterMark' [autofill]="true" [popupHeight]='height'></ejs-combobox>
|