我正在构建一个包含 3 个不同部分的应用程序,所有这些部分都有自己的菜单结构。我想知道如何在(例如(设置页面中更新这些内容。我已经开始了,但是当我更改应用程序时,我必须刷新应用程序才能显示菜单结构。
设置.html
<ion-list style="margin-bottom: 0px;">
<ion-item>
<ion-label>Taal</ion-label>
<ion-select [(ngModel)]="language" cancelText="Annuleer" (ngModelChange)="changeLang()">
<ion-option value="nl">Nederlands</ion-option>
<ion-option value="en">English</ion-option>
<ion-option value="du">Deutsch</ion-option>
</ion-select>
</ion-item>
<ion-item>
<ion-label>Waarvoor wilt u de app gebruiken</ion-label>
<ion-select [(ngModel)]="type" cancelText="Annuleer" (ngModelChange)="changeType()">
<ion-option value="alg">Algemeen</ion-option>
<ion-option value="zrk">Zerken</ion-option>
<ion-option value="kds">Kids</ion-option>
</ion-select>
</ion-item>
</ion-list>
设置.ts
changeLang() {
console.log(this.language);
this.storage.set('appLang', this.language);
}
changeType() {
console.log(this.type);
this.storage.set('appType', this.type);
}
app.component.ts
constructor(public platform: Platform, public popoverCtrl: PopoverController, public storage: Storage) {
this.initializeApp();
this.storage.get('appType').then((result) => {
if(result == "alg") {
this.pages = [
{ title: 'Home', component: HomePage },
{ title: 'Website', component: HomePage }
]
this.menuTitle = "Algemeen";
} else if(result == "zrk") {
this.pages = [
{ title: 'Home', component: ZerkhomePage },
{ title: 'Plattegrond', component: PlattegrondPage },
{ title: 'Overzicht', component: LijstPage }
]
this.menuTitle = "Zerken";
} else if(result == "kds") {
this.pages = [
{ title: 'Home', component: KidshomePage },
{ title: 'Quiz', component: QuizPage },
{ title: 'Prijs', component: PrijsPage }
]
this.menuTitle = "Kids";
}
})
}
所以我想要的是应用程序在我更改设置后"刷新"。我确实知道为什么这不起作用,因为菜单结构是在应用程序启动时加载的。
也许有人知道一个简单的解决方法!
您可以使用ionOpen
事件。 检查此链接
在您的模板app.html
<ion-menu (ionOpen)="omMenuOpen()">
然后在您的"app.component.ts"中
omMenuOpen(){
console.log('menu oppend.');
//here set your pages
}
让我知道它是否有效。