2016-12-09 8 views
1

Я использую несколько сервисов, в которых я использую метод загрузки контента. Каждый из них показывает собственный loadController для отображения окна загрузки. Как обнаружить окно загрузки уже существует, чтобы предотвратить его появление?Как определить окно нагрузки в Ionic 2 RC3 Angular 2?

* Примечание: Мне нужно обнаружить его в обслуживании, но не в компоненте.

ответ

1

Пожалуйста, взгляните на этот фрагмент кода; Я использую его для чего-то другого, но я думаю, это может пригодиться:

import { Nav, Platform, IonicApp, ... } from 'ionic-angular'; 

@Component({ 
    selector: 'page-custom', 
    templateUrl: 'custom.html' 
}) 
export class CustomPage { 

    constructor(private platform: Platform, 
       private ionicApp: IonicApp) { 

     // ... 
    } 

    public showModalByClosingPreviousOne(): void { 

     let activePortal = this.ionicApp._loadingPortal.getActive() || 
      this.ionicApp._modalPortal.getActive() || 
      this.ionicApp._toastPortal.getActive() || 
      this.ionicApp._overlayPortal.getActive(); 

     if (activePortal) { 

      // Dismiss the active portal 
      activePortal.dismiss(); 
      activePortal.onDidDismiss(() => { 

       // Here you can show the new one... 

      }); 
      return; 
     } 
    } 

    // Or maybe you can just use the `activePortal` property to avoid 
    // showing another loading instead of closing the previous one. 
    public showNewModal(): void { 

     let activePortal = this.ionicApp._loadingPortal.getActive() || 
      this.ionicApp._modalPortal.getActive() || 
      this.ionicApp._toastPortal.getActive() || 
      this.ionicApp._overlayPortal.getActive(); 

     if (!activePortal) { 

      // Show your modal 
     } 
    } 

} 
+1

Это хорошо. Но мне нужно обнаружить это не в компоненте. Мне нужно обнаружить его в одном из моих классов обслуживания. У вас есть решение? –

+0

Ваши услуги могут также ввести класс ионипапса и проверить там. – misha130

+0

@AlexanderZakusilo Это очень плохая практика делать вещи, связанные с видом (например, показ загрузки) из службы. Вы должны проверить, нужно ли показывать модальный компонент из вашего компонента перед вызовом службы. Когда служба завершится, вы снова спрячете окно загрузки из компонента. – sebaferreras

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