Cool art, thanks! :)
Since I’ve already read this https://medium.com/angular-in-depth/lazy-load-components-in-angular-596357ab05d8, the best part for me is a trick to prefetch a lazy loaded component with the aid of Webpack comments :)
Why didn’t you handle mouse interaction? If you pick an item by mouse clicking it’s not remembered as the selected item. In addition, according to WAI ARIA recommendations, the selected element should be focused while Tab navigation (there is not switch from tabindex -1 to 0 in your example).
If you use RxJS stream to filter values you cannot use startWith(‘’), because after selecting an item and next focusing on the input field, you will get results filtered with ‘’ instead of the input’s current value. It should be startWith(control.value), since it’s a new subscription each time an overlay gets created.
Nice article, however according to
lazy loaded modules with canLoad guard cannot be preloaded.
So it makes no sense to use both custom preloading strategy and canLoad guard.
Nice article! :)
However, it’s always worth mentioning about error notifications when writing about merge or forkJoin operators, namely what happens if you receive such notification and catch an error at the level of inner/outer stream or simply do nothing about it.
Very nice article! :)
Although I feel quite experienced with RxJS, I appreciate the example as a great way to explain the differences between the subjects. When comparing subjects it’s always a good idea to mention what happens once a subject has received complete/error notification (Subject and BehaviorSubject emit nothing upon subscription, whereas ReplaySubject replays values).