У меня есть компонент angular 9, который используется для загрузки данных (изображений) на сервер. Я хочу, чтобы компонент не обновлялся при маршрутизации. Я хочу, чтобы загрузка продолжалась даже при смене маршрута. Как мне этого добиться??
Предотвратить разрушение компонента Angular 9 при изменении маршрута?
Ответы (1)
Скорее всего, вы хотите реализовать логику загрузки в службе (а не в компоненте). Затем вы внедряете эту службу (которая может быть предоставлена в родительском компоненте или модуле или даже как singleton в зависимости от ваших потребностей).
Затем ваш компонент сообщает службе начать загрузку, и загрузка продолжится, даже если пользователь уйдет со страницы, а сам компонент будет уничтожен.
Теперь имейте в виду, что это может быть плохой UX — если вы видите индикатор выполнения на полпути и уходите со страницы, вы обычно не ожидаете, что загрузка продолжится. Тем более, что это произойдет, если пользователь выйдет за пределы SPA. Но это другое дело, и я сам не эксперт по UX.
person
TotallyNewb
schedule
10.06.2020
Дело в том, что размер загружаемого файла на сервер превышает 100 ГБ, и я хочу, чтобы мой пользователь мог выполнять другие задачи в моем приложении, пока загрузка продолжается: 3
- person Praveen Nat; 10.06.2020
Ага, тогда однозначно перенесите логику в сервис. Затем вы можете сделать так, чтобы служба выдавала информацию об обновлениях статуса, и при необходимости другой компонент отображал обновления статуса независимо от текущего маршрута. В случае таких больших файлов вы также можете сделать эту службу ответственной за просмотр изменений навигации за пределами приложения angular и предупредить пользователя, что он остановит текущую загрузку.
- person TotallyNewb; 10.06.2020
изменения навигации за пределами angular ?? Я не понял эту часть?
- person Praveen Nat; 10.06.2020
Когда пользователь переходит в любое место за пределами вашего приложения, например. google.com или что-то еще. Это означает, что загрузка остановится, так как будет выгружена вся страница. Например, установите флажок stackoverflow.com/questions/7317273/
- person TotallyNewb; 11.06.2020