【发布时间】:2018-12-01 22:11:14
【问题描述】:
编辑
我注意到 subscribe 事件必须先于并调用 publish 。但是每次应用启动时都要求用户打开TabOut page会很愚蠢。
我不需要总是重新加载TabOut page,所以我需要这种事件类型的方法来完成这项工作。否则可以在 ionViewDidEnter() 上调用重新加载。
我有 2 个选项卡和 1 个模式。 /TabIn、/TabOut 和 /ModalIn。
Tabs page 用作数据列表,显示来自ionViewDidLoad() 的数据库中的数据。
ModalIn page 用作用户输入和提交数据的数据入口。此页面位于TabIn page 中,当用户单击每个数据列表时将调用该页面。
在ModalIn page 成功提交表单后,我想在TabOut page 上再次调用刷新(无论之前是否已加载)。我尝试使用事件发布它不起作用。下面是我的代码。
ModalIn .ts
let headers: any = new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }),
options: any = { "username": val, formValue },
url: any = "some_url_here";
this.http.post(url, options, headers)
.subscribe((data: any) => {
if (data.status == 'success') {
this.events.publish('shouldReloadData');
} else {
}
},
(error: any) => {
console.log(error);
});
TabOut .ts
constructor(public events: Events) {
events.subscribe('shouldReloadData', () => {
// Reload the page here
console.log("should reloadddd"); // <- This is not working
});
}
【问题讨论】: