Версия ngx-bootstrap
, которую вы используете, может повлиять на ошибку, которую вы получаете в первую очередь, убедитесь, что вы используете последнюю версию
Ошибка появляется только после 3 символов из-за свойства [typeaheadMinLength]="3"
вВаш шаблон, после ввода 3-го символа, он попытается обновить связанное значение.
typeahead
не обязательно должен быть Observable, взятым из ngx-bootstrap docs :
Опции источника, могут быть массивом строк, объектов или Observable для внешнего процесса сопоставления
Так что для целей тестирования / dev было бы проще использоватьпростой массив типа ["one", "two", "three"]
вместо пустого свойства Observable для ваших компонентов dataSourceObservable
(их первый пример делает это).
Что касается получаемой вами ошибки, похоже, что вы не используете реальный объект Observableметод Observable.create
на самом деле не должен возвращать Observable, как ожидает Typeahead, вызывая ошибку.
Я не уверен, какая библиотека это Observable
объект приходит из вашего кода, но я предполагаю, что это rxjs
, возможно, более старая версия, в версиях 6+ существуют разные способы создания Observable, одним из способов:
import { of } from 'rxjs';
of({}); // Makes Observable with empty object as data
Я бырекомендуем прочитать основы rxjs в Angular Docs - https://angular.io/guide/rx-library