【发布时间】:2017-08-15 11:52:32
【问题描述】:
我试图在页面被关闭后从页面获取一些数据。由于NavController.pop 不允许指定任何参数,我正在尝试使用回调。
调用页面代码:
export class HomePage {
constructor(
private navCtrl: NavController,
private articleService: ArticleService) {
}
// this is called on second page's dismiss
onArticleFiltersDismissed(data: ArticleListFilterModel) {
return new Promise((resolve, reject) => {
if (!data) {
console.log("No data from page ArticleFilterPage");
return;
}
console.log("Dismissed page ArticleFilterPage with data ", data);
console.log("This: ", this);
// "this" does not points to a reference of this page
this.filterData = data;
this.loadArticleBriefData(data);
resolve();
});
}
// this shows the second Page and provides the callback as a parameter
onShowFilter(event: MouseEvent) {
const filterPage = this.navCtrl.push(ArticleFilterPage, { filters: this.filterData, callback: this.onArticleFiltersDismissed });
}
private loadArticleBriefData(filters: ArticleListFilterModel) {
// load data here
}
第二个页面(即被推送到主页)代码如下:
export class ArticleFilterPage {
dismiss(filter: ArticleListFilterModel) {
this.callback(filter).then(() => {
this.navCtrl.pop();
});
}
}
当调用ArticleFilterPage.dismiss 函数时,它会获得正确的输入,但这指向ArticleFilterPage 引用而不是HomePage,因此我收到以下错误消息:
ERROR 错误:未捕获(承诺):TypeError: _this.loadArticleBriefData is not a function TypeError: _this.loadArticleBriefData is not a function
问题:如何正确地将第二页的数据传输到第一页?
注意:我知道使用模态更简单,但是第二个页面已经打开了一个模态,并且模态在模态上似乎无法正常工作(第二个模态的关闭也会关闭第一个)。 em>
【问题讨论】:
-
你的意思是什么意思 modal over modal 似乎不能正常工作(第二个modal的dismiss也会关闭第一个)。?
-
@sebaferras - 从模式页面打开模式页面。正如我在回答中提到的那样,它实际上可以正常工作。
标签: ionic-framework navigation ionic3