У меня угловатая (6) реактивная форма с управлением (автозаполнением). Мне удается правильно заполнить его значениями (улиц), но я что-то упускаю при попытке привязать streetID (а не название улицы) к элементу управления формы.
Я пытался использовать атрибут value, но он все еще не исправил его.
Смотрите мой HTML-код:
<div class="form-group">
<label>Street
<p-autoComplete formControlName="StreetID" [dropdown]="true" [suggestions]="autoCompleteStreetsNames" (completeMethod)="searchStreet($event)" [disabled]=!frm.value.CityID value = "autoCompleteStreetsValues" [mcFieldValidation]="frm.controls.StreetID"></p-autoComplete>
</label>
</div>
Это полный метод с объявлениями переменных:
autoCompleteStreets : Map<number, string> = new Map();
autoCompleteStreetsNames : string[];
autoCompleteStreetsValues : number[];
searchStreet(event) : void{
this.autoCompleteStreetsValues = [];
if (event.query == '')
{
this.generalService.GetStreetsListByCity(this.frm.value.CityID).subscribe(items =>this.populateAutoCompleteStreets(items));
}
else
{
this.generalService.GetCityListByPrefix(this.frm.value.CityID, event.query).subscribe(items => this.populateAutoCompleteStreets(items));
}
}
populateAutoCompleteStreets(lutItems : UnifiedLut[])
{
this.autoCompleteStreetsNames = lutItems.map(item => item.Value);
this.autoCompleteStreetsValues = lutItems.map(item => item.Code);
lutItems.map(lutItem => this.autoCompleteStreets.set(lutItem.Code,
lutItem.Value));
}