Ho seguito l'esempio dato su Ionic2 modals e non ricevo errori, ma quando faccio clic sulla scheda che dovrebbe iniziare il modale non succede niente.Ionic 2 Modal non visualizzato
Ecco il codice per il modal sé:
@Component ({
template: `
<ion-card class='popover'>
<ion-card-content>
Hello
</ion-card-content>
</ion-card>
`
})
export class AccModal {
dumbData: number;
constructor() {
console.log("constructor");
this.dumbData= 22;
}
}
La pagina in cui sarà presentato il mio modale si presenta così:
<ion-card (click)='presentModal()' class='custom-card'>
<ion-card-header>
Sched. Accuracy
</ion-card-header>
<ion-card-content>
71%
</ion-card-content>
</ion-card>
Con il dattiloscritto in questo modo:
presentModal() {
let myModal = Modal.create(AccModal, {param: "something"});
console.log('myModal is ', myModal);
this.nav.present(myModal);
console.log("function being called");
}
Il console.log
nello presentModal
è stato registrato ma quello nel costruttore di il modale NON è. Sono in perdita su cosa fare perché non sono sicuro al 100% che cosa sta succedendo?
UPDATE
Quando il debug nella nav.present (funzione Nav Controller) qui è quello che vedo:
if (rootNav['_tabs']) {
// TODO: must have until this goes in
// https://github.com/angular/angular/issues/5481
void 0;
return;
}
Il mio progetto non ha schede in modo che la dichiarazione restituisce true e la funzione presente mi restituisce effettivamente uno 0 e lo chiama buono. Nel mio package.json le mie versioni ioniche sono: "ionic-angular": "^2.0.0-beta.8", "ionic-native": "^1.1.0"
Speriamo che questa aggiunta di informazioni aiuti a diagnosticare qualcuno più intelligente di me.
UPDATE 2:
ho aggiornato all'ultima ionica 2 rilascio in 2.0.0-beta.9. Tuttavia, quando il debug nella console cromata vedo ancora il codice di cui sopra nella mia funzione nav.present nel codice ionico-angolare, anche se, quando lo guardo nel mio proprio codice vedo questo:
if (rootNav['_tabs']) {
// TODO: must have until this goes in
// https://github.com/angular/angular/issues/5481
console.error('A parent <ion-nav> is required for ActionSheet/Alert/Modal/Loading');
return;
}
Ho svuotato la cache e ho ricaricato la pagina e il vecchio codice si presenta ancora. Devo perdere la testa. Qualche idea su questo sarebbe sorprendente.
Update 3
Ecco il codice per le mie schede. Il live in app.html e la variabile index è solo un modo per avviare l'app nella scheda giusta. Si inizia come 1 (o la seconda scheda):
<ion-tabs greenTheme [selectedIndex]="index">
<ion-tab tabIcon="people" #content tabTitle="My Roster" [root]="tab2"></ion-tab>
<ion-tab tabIcon="stats" #content tabTitle="Wage Overview" [root]="tab1"></ion-tab>
</ion-tabs>
È il tuo this.nav il tuo controller nav? – Drakee510
Sì. Spiacente, ho omesso il costruttore – discodane
'.present (myModal)' restituisce una promessa. Prova a fare '.present (myModal) .then ((res) => {debugger;}). Catch ((err) => {debugger;})' per vedere se vengono restituite informazioni utili qui –