У меня есть вход FormControl с выпадающим списком typeahead, который получает Observable Subject после выполнения http-вызова моего API.
Проблема здесь в том, что моя функция, приведенная ниже, имеет значение отслеживания прослушивания Valueна новые входы.Поэтому, если пользователь вводит «copenhagen», API возвращает области, соответствующие запросу, например: «Copenhagen, Hovedstaden, Danmark».Если щелкнуть этот ввод заголовка типа, valueChanges Observable выдает новое значение, в результате чего выпадающий список заголовков снова появляется.
subscribeToLocation() {
const subscription = this.locF.valueChanges
.pipe(catchError(err => of(err)), debounceTime(800), distinctUntilChanged())
.subscribe((formValue: ILocation<any>) => {
this.initStoryLocationBody(formValue);
})
}
См. Изображения потока
Я уже пытался установить для emitEvent значениеfalse как в setValue()
, так и в patchValue()
.
Желаемое поведение: пользователь вводит, например: «copenhagen» - API выбирает местоположения, соответствующие этому запросу - возвращает массив местоположений и отображает в typeahead (это работает)- пользователь щелкает местоположение, и имя object.place_name (например, «København, Hovedstaden, Denmark») отображается в поле ввода, но заголовок ввода не появляется, пока пользователь не введет новый запрос.