Ionic3 Ionic 3从子页面的根页面运行函数
与离子3一起工作 根页面app.component.ts:Ionic3 Ionic 3从子页面的根页面运行函数,ionic3,angular5,Ionic3,Angular5,与离子3一起工作 根页面app.component.ts: ... export class MyApp { @ViewChild('myNav') nav: NavController rootPage:any = HomePage; sdata = []; getListName(){ //returns an array a list for menu names //sdata } } app.html: <ion-menu [content]
...
export class MyApp {
@ViewChild('myNav') nav: NavController
rootPage:any = HomePage;
sdata = [];
getListName(){
//returns an array a list for menu names
//sdata
}
}
app.html:
<ion-menu [content]="content">
<ion-header>
<ion-toolbar>
<ion-title>Μενού</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<button menuClose ion-item class="menulist elvtitles" *ngFor="let p of sdata" (click)="toElevator(p.elevatorID)">
<ion-icon name="construct"></ion-icon> {{p.address}}
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav #myNav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
<child-register (intervalFired)="onIntervalFired($event)"></child-register>
到目前为止,我尝试使用输出方法,但下面的方法不起作用:
export class ChildPage {
@Output() intervalFired = new EventEmitter<any>();
refresh(){
...
this.intervalFired.emit(dataAll);
}
}
导出类子页面{
@Output()intervalFired=neweventemitter();
刷新(){
...
this.intervalFired.emit(dataAll);
}
}
在app.html中:
<child-register (intervalFired)="onIntervalFired($event)"></child-register>
或
{{p.address}}
但一切都不起作用
我需要的是以某种方式调用子页面中的父(app.component)函数。
我想我的问题很清楚,如果不是问我细节的话。如有任何意见或指示,将不胜感激 有两种方法
import { Events } from 'ionic-angular';
export class ChildPage {
constructor(public events: Events) {}
ChildPage() {
console.log('Child Page!')
this.events.publish('menu:update');
}
}
import { Events } from 'ionic-angular';
export class MyApp {
constructor(public events: Events) {
events.subscribe('menu:update', () => {
this.getListName()
});
}
@ViewChild('myNav') nav: NavController
rootPage:any = HomePage;
sdata = [];
getListName(){
//returns an array a list for menu names
//sdata
}
}
应用程序/父页面
import { Events } from 'ionic-angular';
export class ChildPage {
constructor(public events: Events) {}
ChildPage() {
console.log('Child Page!')
this.events.publish('menu:update');
}
}
import { Events } from 'ionic-angular';
export class MyApp {
constructor(public events: Events) {
events.subscribe('menu:update', () => {
this.getListName()
});
}
@ViewChild('myNav') nav: NavController
rootPage:any = HomePage;
sdata = [];
getListName(){
//returns an array a list for menu names
//sdata
}
}
如果方法应该由双方共享和使用,为什么不只做共享服务并允许两个组件都使用它呢?我在你之前找到了答案,我做了一些与你类似的事情。我没有测试您的代码,但我认为这是正确的。@很高兴听到您的问题已经解决