Как лучше всего отображать индикатор выполнения в Angular2?

Как лучше всего отображать индикатор выполнения в приложении Angular2 при выполнении HTTP-запроса?

Я пробовал следующее, используя индикатор выполнения AngularMaterial2:

<md-progress-bar mode="determinate" value="myValue"></md-progress-bar>

Но как найти «значение» для приведенного выше кода?

(Если невозможно узнать фактический ход выполнения HTTP-запроса, как лучше всего получить индикатор выполнения в стиле Youtube или Github?)


person duke636    schedule 17.08.2016    source источник
comment
Вы не можете знать фактический ход выполнения HTTP-запроса.   -  person str    schedule 17.08.2016
comment
Вы попробовали это? не уверен, что это все еще работает. stackoverflow.com/a/37159100/5227141   -  person j2L4e    schedule 17.08.2016


Ответы (2)


Мы не можем определить время, необходимое для выполнения HTTP-запроса, поэтому режим indeterminate больше подходит для выполнения HTTP-запросов.

Http-сервис Angular возвращает Observable, на который мы можем подписаться и обработать ответ, прямо сейчас нет доступного механизма для получения прогресса от Http-сервиса.

Один из способов - использовать XmlHttpRequest для прослушивания события прогресса и если использовать его свойство lengthComputable и соответственно отображать индикатор выполнения.

поэтому один из способов получить индикатор выполнения в стиле Youtube или Github был показан в этом ответе.

Если у вас более одного запроса, вы можете использовать количество выполненных запросов в процентах.

person HirenParekh    schedule 04.03.2017

Используйте библиотеку, модуль или пакеты из общедоступного исходного кода, широко доступного в Интернете.

Вот несколько примеров Angular 2:

  1. https://embed.plnkr.co/rx4RJUFjHqGYMA3jRxDL/

  2. http://www.angulartypescript.com/angular-2-progress-bar/

person Homer Knoax    schedule 17.08.2016
comment
Они вроде для Angular1? - person duke636; 17.08.2016
comment
Я исправляю ссылки, чтобы они были Angular 2 - person Homer Knoax; 18.08.2016