2015-08-16 5 views
0

В моем приложении, когда пользователь нажимает на имя элемента внутри одного настраиваемого элемента (элемент навигатора), элемент загружается в качестве другого настраиваемого элемента (основного элемента). Эта загрузка может занять время в зависимости от размера элемента, так как в нем может быть много вложенных элементов. Чтобы пользователь знал, что загрузка происходит, я хочу показать счетчик.Показать загружаемое изображение и скрыть его

Вот как я в настоящее время пытаюсь достичь этого:

В главном-элементе, у меня есть один DIV, который содержит вращатель изображение, и имеет атрибут hidden?="{{!loading}}".

Когда пользователь нажимает на имя элемента в элементе навигатора, переменная bool loading имеет значение true, а при загрузке и прикреплении всех вложенных пользовательских элементов приложение превращает loading в значение false.

Однако, прядильщик div никогда не отображается, хотя loading действительно меняется на true, а затем на false, правильно. Кажется, что Полимер подавляет промежуточные изменения пользовательского интерфейса до тех пор, пока все не завершится.

Если я включаю кнопку, нажимая на которую переключается значение loading, изменения отображаются правильно.

Я также удалил все unresolved атрибуты со всего мира в своем приложении, чтобы узнать, имеет ли это значение, однако это не имело значения.

Что делать, чтобы отображать spinner div, когда идет длительный процесс?

+0

Günter: Я буду рад поделиться, но я беспокоюсь, что это немного сложно. Я только что создал ветку, которую вы можете найти здесь: https://gitlab.com/proteme/Learnia2/tree/spinner – Hesh

+0

Развернутая версия находится здесь: http://proteme.org/Chekov/ – Hesh

+0

Минимальный воспроизводимый пример , лишенный всего несвязанного кода будет замечательным. –

ответ

1

Скорее всего, вы можете исправить это, просто подождав один кадр анимации между настройкой loading = true и выполнив более дорогостоящую операцию. Если вы сделаете все это сразу, браузер не будет создавать ничего нового, пока все ваши работы не будут выполнены, потому что вы блокируете поток ui.

Смежные вопросы