Я стараюсь часами, но не везет. У меня есть приложение angularjs, где я хочу представить пользователю загрузчик, пока страница не будет полностью загружена (отображается). Особенно между изменениями состояния, поскольку клик зарегистрирован, но ничего не происходит сразу. Таким образом, пользователь не получает обратной связи, если он загружается или нет. Мое приложение запрашивает некоторые данные через ajax, когда контроллер запускается. я уже пробовал разные решения:AngularJs на готовом рендеринге
Использование
$stateChangeStart
и$viewContentLoaded
. Этот подход отлично работает, если представления загружаются впервые, но срабатывает слишком рано для каждого последующего изменения состояния. Это связано с кэшированием шаблонов. Каждый раз при запуске viewContentLoaded шаблон кэшируется.Использование директивы с
$timeout
. Это очень хорошо работает при первом загрузке, если я прикреплю его кbody
моего html-документа. Но поскольку я использую вложенные представления/контроллеры, директива не вызывается снова, когда я переключаюсь между состояниями. Он снова запускается раньше, когда я присоединяю директиву к элементуui-view
.
Есть ли альтернативы? Я делаю что-то неправильно? Возможно ли это?
Благодаря
Вы можете поделиться с PLNK своей проблемы –
Где именно вы загружаете данные? –
Я загружаю данные сразу, когда контроллер выполнен. Проблема в том, что загрузка представляет собой асинхронный вызов, и директива получает вызов, как только контроллер завершит выполнение, что не означает, что данные на самом деле уже существуют. Я попытаюсь получить пример работы. – puelo