2017-01-12 1 views
1

Я использую шаблон для примера результата из ng-bootstrap.github.io.Как установить начальное значение по умолчанию/начальное значение для Angular 2 ng-bootstrap?

Это прекрасно работает. Я использую его для ввода пользователем города в форму.

Проблема заключается в редактировании деталей пользователя. Я не уверен, как заполнить ранее сохраненный город для этого пользователя. Это то, что я имею в HTML:

<template #rt let-r="result" let-t="term"> 
    {{ r.name}} 
</template> 
<input (blur)="lostFocus($event)" class="form-control" formControlName="city_obj" type="text" [(ngModel)]="typeaheadModel" [ngbTypeahead]="search" [resultTemplate]="rt" [inputFormatter]="formatter" (selectItem) = "selectItem($event)"> 

Это из компонента:

search = (text$: Observable<string>) => 
text$ 
.debounceTime(200) 
.map(term => term === '' ? [] 
    : this.cities.filter(v => new RegExp(term, 'gi').test(v.name)).slice(0, 10)); 
formatter = (x: {name: string}) => x.name; 

Я использую модель привода формы.

В базе данных я сохраняю только идентификатор города для пользователя, так как города находятся в отдельной таблице.

Итак, в форме строителя у меня есть поле city_id и city_obj.

API будет сохранять только city_id и игнорировать city_obj.

Я использую событие selectItem для установки поля city_id в компоненте.

Итак, как я могу установить ранее сохраненный город для ввода и сохранения функциональности типа?

ответ

0

Обнаружил это сам.

Мне просто пришлось установить тот же объект в элемент управления формы, но после debounceTime.

+1

Можете ли вы обновить свой ответ с помощью кода решения? – Chetan

+1

Можете ли вы обновить исходный код после решения, пожалуйста? @igor –