Ich habe eine Registerkarte Gruppe:Wie kann man einen Tab Klick abmildern?
<ion-tabs>
<ion-tab [root]="tab1Root" tabTitle="Programmes" tabIcon="icon-programmes"></ion-tab>
<ion-tab [root]="tab2Root" (ionSelect)="studioCheck()" tabTitle="Studio" tabIcon="icon-studio"></ion-tab>
<ion-tab [root]="tab3Root" tabTitle="Library" tabIcon="icon-library"></ion-tab>
<ion-tab [root]="tab4Root" tabTitle="Profile" tabIcon="icon-profile"></ion-tab>
</ion-tabs>
Wenn ein Benutzer den zweiten Registerkarte (‚Studio‘) klickt, muß ich überprüfen, ob sie Zugang zu ihm noch. Wenn sie es tun, toll, wenn sie es nicht tun, möchte ich eine Toast-Benachrichtigung anzeigen und den ersten Tab laden.
Wie kann ich das tun?
Ich dachte, ein return false
würde ausreichen, auf studioCheck()
, aber es tut es nicht.
Typoskript:
studioCheck() {
console.log('Studio visited');
// Grab studio selected level
this.storage.get('studio_level').then((val) => {
console.log('Storage queried');
if(val) {
console.log('Level ID: ', val);
return true;
} else {
// No level selected
let toast = this.toastCtrl.create({
message: 'Please choose a programme in order to use the Studio',
duration: 3000,
position: 'top'
});
toast.present();
this.navCtrl.parent.select(0);
return false;
}
});
}
Ich dachte, dass vielleicht die ionSelect
nicht für den storage.get
Aufruf asynchron nicht warten, so dass ich habe gerade ein return false;
an der Spitze der Funktion, aber das macht das gleiche.
Irgendwelche Ideen?
Das noch das gleiche Ergebnis hat. Der Grund dafür ist, dass 'this.storage.get' asynchron ist, so dass die Registerkarte wechselt, ohne auf den Speicheraufruf zu warten. – Mike
gut ja Registerkarte schaltet, aber es sollte ziemlich schnell auf die erste Registerkarte zurück, wenn es eingeschränkt ist .. das ist der Zweck von "this.tabs.select (0)" –
Es schlägt fehl, weil die Registerkarte, auf die ich wechseln läuft , was ich verhindern möchte, da Daten im Speicher vorhanden sind, die nicht vorhanden sind. Ich weiß, dass ich Logik auf dieser Seite hinzufügen kann, um das zu verhindern, aber ich hoffte auf eine Möglichkeit, die Registerkarte überhaupt nicht zu öffnen und zu schließen und zu schließen – Mike