【发布时间】:2016-10-17 11:42:39
【问题描述】:
我正在使用网络原生插件来检测网络状态(连接或未连接)并检测网络状态的变化(onConnect 和 onDisConnect)。
我想在网络断开连接时禁用一些按钮,并在我恢复连接时启用它们。因此,网络插件有 2 个函数,称为 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 函数触发了,但是我的按钮不会立即被禁用...我首先必须点击一个按钮或执行其他操作...如何强制视图更新按钮状态? ??
运行 ionic 2 rc 1
【问题讨论】:
标签: cordova ionic2 observable