Я просматривал документацию Angular и увидел следующий фрагмент кода.В глубине души я подумал, что вспомнил, что использование document.getElementById()
в Angular не одобряется, и даже использование ElementRefs
не рекомендуется (для предотвращения атак XSS).Если они действительно не приветствуются, какова наилучшая практика для создания Наблюдаемой для событий на конкретном элементе?
от Документация угловых наблюдаемых
import { fromEvent } from 'rxjs';
import { ajax } from 'rxjs/ajax';
import { map, filter, debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';
const searchBox = document.getElementById('search-box'); // <-- Is this OK?
const typeahead = fromEvent(searchBox, 'input').pipe(
map((e: KeyboardEvent) => e.target.value),
filter(text => text.length > 2),
debounceTime(10),
distinctUntilChanged(),
switchMap(() => ajax('/api/endpoint'))
);