Я пытаюсь повторно заполнить ввод, который использует автозаполнение матов. Однако всякий раз, когда я отправляю значение с this.optionForm.patchValue({selectedOption: 'my value'})
, результаты не отображаются в графическом интерфейсе. Если я console.log()
, я ясно вижу, что значение установлено. Я не уверен, связана ли проблема с тем, что я иногда устанавливаю объект в поле, а иногда устанавливаю просто строку? Но я хотел бы иметь возможность повторно заполнить ввод результатами и отобразить их соответствующим образом. Как бы я ни старался, мне кажется, что результаты не отображаются.
Ниже мой компонент сокращен до рассматриваемого ввода и моего Observable, который получает результаты для mat-autocomplete
. Они отлично работают при первом использовании формы.
// component.html
<mat-form-field>
<mat-label>Option Object</mat-label>
<input type="text" matInput formControlName="selectedOption" required
[matAutocomplete]="autoGroup">
<mat-autocomplete #autoGroup="matAutocomplete"
(optionSelected)="updateOptionInfo($event.option.value)"
[displayWith]="displayFn">
<mat-option *ngFor="let result of resultOptions | async" [value]="result">
<span>{{result}}</span>
</mat-option>
</mat-autocomplete>
// component.ts
this.resultOptions = this.optionForm.get('selectedOption').valueChanges
.pipe(
debounceTime(300),
switchMap(value => {
if (value === '') {
this.clearProviderInfo();
return of(null);
}
if (value !== '' && ((typeof value) !== 'object')) {
return this.optionService.fetchAndFilterOptions(value)
.pipe(
catchError((e) => {
console.error(e);
return of([]); // empty list on error
})
);
} else {
return of(null);
}
})
);
Any help would be appreciated!
this.resultOptions = [...this.resultOptions]
, после обновленияresultOptions
, - person Abhishek Kumar   schedule 12.02.2019Type 'any[]' is not assignable to type 'Observable<any[]>'. Property '_isScalar' is missing in type 'any[]'.
- person SortingHat   schedule 13.02.2019