Как отображать панель загрузки только для запросов, занимающих больше времени, чем n

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

Вы можете создать класс с именем ApplicationContextProvider, который реализует ApplicationContextAware интерфейс.

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class ApplicationContextProvider implements ApplicationContextAware{

 private static ApplicationContext appContext = null;

 public static ApplicationContext getApplicationContext() {
   return appContext;
 }

 public void setApplicationContext(ApplicationContext appContext) throws BeansException {
   this.appContext = appContext;
 }
}

, затем добавьте этот файл контекста вашего приложения:

<bean id="applicationContextProvider" class="xxx.xxx.ApplicationContextProvider"></bean>

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

ApplicationContext appContext = ApplicationContextProvider.getApplicationContext();
0
задан jonrsharpe 17 January 2019 в 08:05
поделиться

1 ответ

Вы можете просто добавить новую переменную для учета состояния «завершена загрузка».

Вот решение: добавьте finishedLoading: boolean = true; к вашему классу. Тогда:

checkRouterEvent(routerEvent: Event): void {
  if (routerEvent instanceof NavigationStart) {
    this.finishedLoading = false;
    this.loading = false;
    setTimeout(() => {
      if (!this.finishedLoading) {
        this.loading = true;
      }
    } , 300);
  }

  if (routerEvent instanceof NavigationEnd ||
    routerEvent instanceof NavigationCancel ||
    routerEvent instanceof NavigationError) {
    this.finishedLoading = true;
    this.loading = false;
  }
}
0
ответ дан Mic 17 January 2019 в 08:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: