【发布时间】:2018-03-21 21:50:45
【问题描述】:
我正在开发第 3 版的 Ionic 应用程序。
我有一个在 app.html 中定义的侧边菜单(切换菜单)
<ion-menu [content]="content" (ionClose)="menuClosed()(ionOpen)="menuOpened()">
<ion-header>
<ion-toolbar>
<ion-title>Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<button menuClose ion-item (click)="toggleHelp()">
<ion-icon item-start name="help-circle"></ion-icon>
<ion-label>Help</ion-label>
</button>
</ion-content>
在app.component.ts文件中,有这个函数:
private toggleHelp = () =>{
this.helpClicked = true;
this.homePage.showHelp();
}
在我的主页上,我有一张说明内容的卡片。用户可以隐藏它,如果用户打开侧边菜单,他可以点击帮助按钮(在侧边菜单上声明),它会再次显示卡片。
home.html 看起来像:
<ion-header>
<ion-navbar>
<button ion-button menuToggle start>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>Home</ion-title>
</ion-navbar>
</ion-header>
<ion-content no-padding>
<ion-refresher (ionRefresh)="doRefresh()"></ion-refresher>
<ion-card margin *ngIf="(help_shown == true)" class="card-help">
<span class="button_acknowledgement">
<button ion-button clear color="bluelight" (click)="hideHelp()">I GOT IT</button>
</span>
</ion-card>
</ion-content>
在 home.ts 中:
export class HomePage {
help_shown = true;
constructor(private platform: Platform, private zone: NgZone) {
}
private hideHelp = () =>{
this.help_shown = false;
console.log("help_shown: "+this.help_shown)
}
public showHelp = () =>{
this.zone.run(() => {
this.help_shown = true;
console.log("help_shown: "+this.help_shown)
});
}
所以现在,当我点击我得到它的按钮时,卡片将被隐藏(因为变量 help_shown 将被更改为 false)。当我点击菜单栏内的帮助时,变量 help_shown 将被函数修改(它将传递为 true,我记录了它,所以我确定它正在工作),但是即使 *ngIf 应该也不会出现卡片做它出现。我尝试使用 ngZone,但没有成功。有人可以帮帮我吗?
PS : 如果我在主页中创建一个按钮,这将改变变量 help_shown,它也会起作用。
你可以试试我这里说的:https://ionic-n35gsm.stackblitz.io
【问题讨论】:
-
只是一个快速提示:这不是一个“angularjs”问题,而是一个“angular”问题
-
好的,很抱歉。谢谢
-
你可以试试我这里说的:ionic-n35gsm.stackblitz.io