Сетевая подписка не изменяет представление сразу

#cordova #ionic2 #observable

#кордова #ionic2 #наблюдаемый

Вопрос:

Я использую сетевой собственный плагин для определения состояния сети (подключен или нет) и для обнаружения изменения состояния сети (OnConnect и onDisconnect).

Я хочу отключить некоторые кнопки при отключении сети, а также хочу включить их, когда у меня восстановится соединение. Поэтому сетевой плагин имеет 2 функции, называемые OnConnect и onDisconnect, которые возвращают наблюдаемое. при подписке на эти функции я хочу изменить переменную класса с именем «isConnected». Приведенный ниже код показывает, что я хочу управлять этим.

     ...    
    constructor(...){
        ....
        // network
        this.isConnected            = Network.connection !== "none";
        this.connectSubscription    = Network.onConnect().subscribe(()=>{
          this.updateConnection();
          Toast.showShortBottom("connected now !").subscribe();
        });
        this.disconnectSubscription = Network.onDisconnect().subscribe(()=>{
          this.updateConnection();
          Toast.showShortBottom("disconnected now !").subscribe();
        });
    }

    updateConnection(){
      this.isConnected = Network.connection !== "none";
    }
 

и мой html-файл содержит несколько кнопок, которые должны быть включены / отключены в зависимости от состояния соединения «isConnected»..

 ...
      <button ion-button icon-only [disabled]="!isConnected" (click)="openModal()" shortVibrateOnTap>
        <ion-icon ios="ios-swap" md="ios-swap"></ion-icon>
      </button>
...
  <ion-col width-10>
    <button ion-button icon-only class="arrow-btn" [disabled]="!isConnected amp;amp; onLastQuestion" (click)="fireSth()" shortVibrateOnTap>
      <ion-icon *ngIf="!onLastQuestion" ios="ios-arrow-forward" md="ios-arrow-forward"></ion-icon>
      <ion-icon *ngIf="onLastQuestion"  ios="ios-arrow-dropright-circle-outline" md="ios-arrow-dropright-circle-outline"></ion-icon>
    </button>
  </ion-col>
...
 

теперь срабатывают функции OnConnect и onDisconnect, но мои кнопки не отключаются сразу… Сначала я должен нажать на кнопку или выполнить другое действие … Как я могу заставить представление обновить статус кнопки?????

запуск ionic 2 rc 1

Ответ №1:

ApplicationRef, похоже, делает то же самое, что и здесь. Но я все еще не понимаю, почему это происходит ..