Я изучаю Angular 5 с Typescript. Я пытаюсь реализовать автозаполнение углового материала, и я нашел следующий код, который мне очень непонятен:
this.filteredStates = this.stateCtrl.valueChanges
.pipe(
startWith(''),
map(state => state ? this.filterStates(state) : this.states.slice())
);
Полный код можно найти здесь: https://stackblitz.com/angular/mdokmnyajmd?file=app%2Fautocomplete-overview-example.ts
Я склонен думать, что когда в stateCtrl происходит изменение, он возвращает результат filterStates(state) тогда и только тогда, когда конкретный элемент был выбран в автозаполнении.
Чего я не понимаю, так это использования startWith('') ?! Почему бы просто не подписаться на вызов valueChanges?