我得到了以下Ionic代码片段,用于在工业应用中显示警报/错误:
showError(message: string) {
let toast = this.toastController.create({
message: message,
position: 'top',
duration: 5000,
cssClass: 'danger',
showCloseButton: true
});
toast.present();
}
Run Code Online (Sandbox Code Playgroud)
应用程序每次检测到连接问题时都会触发错误消息,这也将大致在5秒计时器上.
如果更改此代码的时间,多次调用此方法将导致两个或更多错误消息显示在彼此之上.我可以以某种方式检测到吐司已经显示了吗?此外,5000毫秒定时器不是必需的,我可以在重新建立连接时再次删除错误消息.
谢谢和BR Florian
我有一个Ionic 2应用程序,在各个地方都有吐司通知.
一个很好的例子是用户在应用程序上更新他们的个人资料并运行一些验证检查.如果用户未通过某些验证,我可能会调用以下内容:
let toast = this.toastCtrl.create({
message: 'Sorry, your password must be at least 6 characters long. Your account was not updated.',
duration: 3000,
position: 'top'
});
toast.present();
Run Code Online (Sandbox Code Playgroud)
没有问题.它只显示3秒然后消失.
当多次同时显示时出现问题.例如,用户可以键入6个字符的密码,但不会因其他原因进行验证,因此会引发另一个Toast通知:
let toast = this.toastCtrl.create({
message: 'Sorry, your passwords do not match. Your account was not updated.',
duration: 3000,
position: 'top'
});
toast.present();
Run Code Online (Sandbox Code Playgroud)
这导致2个吐司重叠,一个将永久保留.这两个重叠不是一个问题,但一个无限期的事实是一个巨大的问题.
我想这是因为我toast每次都有效地覆盖变量.
解决这个问题的最佳方法是什么?我不希望有toast1,toast2等等,因为这不会解决问题,因为用户可能会推出同样Toast通知两次(<6个字符的密码,提交两次).