В настоящее время я разрабатываю административную панель управления для моего места работы с использованием шаблона BlurAdmin . Хотя этот шаблон содержит много замечательных функций и отличных функциональных возможностей, я обнаружил, что эта панель управления была не совсем оптимизирована для моего случая использования. Панель инструментов, которую я разрабатываю, полностью основана на RESTful API, построенном отдельно одним из моих коллег. Каждая страница загружает свои данные через этот API с помощью AJAX и обнаруживает, что большую часть времени страница отображается до завершения API. Это означает, что вещи просто время от времени появляются, когда звонки завершены. Чтобы сделать пользовательский интерфейс более плавным, я начал работать над решением для этого.
Текущее решение
Во время загрузки маршрута переменная rootScope $isLoading
установлена в значение true, что отображает накладываемое изображение загрузки, растянутое по странице. Чтобы определить завершение, я наблюдаю $http.pendingRequests.length
до тех пор, пока оно не станет равным 0, что говорит мне об успешной загрузке страницы (основываясь исключительно на вызовах http).
Желаемое решение
Пока загружается маршрут, я бы хотел, чтобы страница не менялась, а вместо этого использовала загрузчик верхней панели и только при загрузке страницы, если маршруты изменились.
В настоящее время маршрутизация выполняется BlurAdmin с использованием модуля ui-router , и представление всегда мгновенно отображается директивой ui-view
.
Мой вопрос: как мне предварительно загрузить угловой маршрут в скрытый вид во время его построения, и только после того, как я обнаружу, что все вызовы API завершены на этом новом маршруте, должен ли скрытый вид переключиться на видимый вид и старый видимый вид будет удален?