是否可以在一个页面中发布一个事件,并在不同页面上多次订阅。像这样。
handleClick(){
this.events1.publish('my-message', ' Hello from page1!');
}
export class Page1Page {
constructor(public events1: Events) {
events1.subscribe('my-message', (data) =>{
console.log(data); // Hello from page1!
});
}
}
export class Page2Page {
constructor(public events1: Events) {
events1.subscribe('my-message', (data) =>{
console.log(data); // Hello from page2!
});
}
}
这是一个好习惯吗?还是这段代码给出错误?
答案 0 :(得分:1)
好。这是我的看法。我看到了3个难题:
1)您需要一些有关网络连接的信息。我将从Ionic Native包装的网络cordova-plugin-network-information
插件开始。
2)您应该创建与此网络插件一起使用的Angular服务/提供者,以了解网络的变化。然后,它可以公开此数据供页面使用(并根据需要触发事件)。另请注意,应用程序启动时,该应用程序可能仅在此处进行更新,因此您可能希望获取ready
(启动)和resume
(从后台打开)的当前状态。有关这些挂钩,请参见Ionic Platform。
3)然后,您的页面可以利用#2中的服务/提供程序来显示当前的在线状态(如果您的UI需要提醒更改而不是仅显示当前状态,则可以监视更改)。