编辑
我注意到,订阅事件必须先于发布发布才被调用。但是每次启动应用程序时要求用户打开TabOut page
都是很愚蠢的。
我不需要总是重新加载TabOut page
,所以我需要这种事件类型的方法来完成这项工作。否则就可以调用ionViewDidEnter()
上的重新加载。
我有2个标签和1个模态。 / TabIn,/ TabOut和/ ModalIn。
Tabs page
用作数据列表,显示ionViewDidLoad()
上来自数据库的数据。
ModalIn page
用作用户输入和提交数据的数据条目。该页面位于TabIn page
中,当用户单击每个数据列表时将被调用。
在ModalIn page
中成功提交表单后,我想再次在TabOut page
上调用refresh(无论之前是否加载过)。我尝试使用事件发布无法正常工作。下面是我的代码。
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
});
}
答案 0 :(得分:0)
在TabOut.ts中使用CaseIterable
关键字调用subscribe
。
this