Pull to refresh

Comments 5

Из мухи сделали слона). Ваш код порождает ограничения и излишние сложности

У себя на проекте пришел к другому варианту.
Скелетон/лоадер нужно показывать в основном пока работает поток, поэтому были написаны специальные пайп, сервис и директива для отслеживания всего этого дела. Рабтоает это примерно так:
Выводим лоадер на кнопку после отправки данных на бек:
<button loadWhen="user.creating" (click)="createUser()">Create User</button>

createUser():void {
  this.usersService.create().pipe(tapLoadWhen('user.creating')).subscribe()
}


Такое же можно сделать и для скелетона, суть в том, что-бы строка в директиве loadWhen совпадала со строкой в пайпе taploadWhen.

Если интересно что там под капотом — могу как-то написать статью, так как подобного подхода не видел в других местах и считаю это очень удобным.
Напишите или ссылочкой на реалзацию поделитесь в stackblitz
Интересный вариант, но мне тоже показался слишком сложным для такой простой вещи.
Мы, например, используем структурную директиву, работающую по-принципу ngIf, только вместо удаления элемента рисуем скелетон.

<span *skeletonFor="username$ | async as username">{{ username }}</span>

Да, такая реализация тоже кажется не идеальной, так-как завязана на роутинг. В своих проектах решаю подобные вещи путём наследования модуля компонента от более абстрактных своих классах, где один раз уже написана логика вроде управления isLoading и автоматом подключается к компоненту.

Only those users with full accounts are able to leave comments. Log in, please.