- 
          
- 
                Notifications
    You must be signed in to change notification settings 
- Fork 152
Open
Description
I have the following autocomplete input:
<input cAutocomplete
       highlightOptionsOnSearch
       allowOnlyDefinedOptions
       showHints
       [loading]="isPersonsLoading"
       [options]="persons"
       [search]="{external: true, global: true}"
       [delay]="500"
       (inputChange)="personsLoad($event)"
       id="person"
       formControlName="person"
       [valid]="itemForm.controls['person'].touched ? itemForm.controls['person'].valid : undefined" />
persons is a lazy loaded list after (inputChange):
persons: AutocompleteOption[] = []`
 personsLoad(input: string) {
   if (!input) {
     return
   }
   this.isPersonsLoading = true
   let query = new PagedQuery()
   query.filter = input
   query.sort = { column: 'LastName' }
   this.http.get<PagedResult<Person>>('/api/persons', { params: query.toHttpParams() }).subscribe({
     next: (result) => {
       this.persons = result.results.map((person) => <AutocompleteOption>{ label: `${person.lastName}, ${person.firstName}`, value: person.id })
     }
   }).add(() => {
     this.isPersonsLoading = false
   })
 }
The form definition:
itemForm = new FormGroup({
  person: new FormControl('', Validators.required)
}
And the important part, setting the form value initally:
this.itemForm.get('person')!.setValue(`${this.item.person?.lastName}, ${this.item.person?.firstName}`)
And now whenever I change the autocomplete input, the list of options is not displayed, but the input resets immediatly to the inital value.
If no initial value is set, the input works as expected.
Metadata
Metadata
Assignees
Labels
No labels