2016-10-17 44 views
0

我使用网络本地插件来检测网络状态(连接与否)和检测网络状态(onConnect和onDisConnect)的变化。网络订阅不会改变视图

我想在网络断开连接时禁用某些按钮,并且还想在连接回来时启用它们。因此,Network插件有两个函数,分别称为onConnect和onDisConnect,它们返回一个Observable。在订阅这些函数时,我想更改一个名为“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 && 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功能射击,但我的按钮不获得残疾无情...我首先必须点击一个按钮或做另一个动作...我如何强制视图更新按钮状态?????

运行离子2 RC 1

回答

0

ApplicationRef似乎这样的伎俩看here。但我仍然不明白为什么会发生这种情况..