Я пытаюсь добавить всплывающее окно, которое будет отображаться на странице, когда пользователь начнет заполнять данные в форме, а затем он решил перейти в другое место в приложении.
Это всплывающее окно покажетэто сообщение: «Вы хотите покинуть эту страницу и сохранить изменения?»доступны три кнопки: «Оставаться», «Выходить» и «Сохранить» перед отъездомЯ новичок в ионной логике, и я не мог понять, как это сделать.
Я начал с добавления кнопки на странице, которая показывает всплывающее окно (Все еще не знаю, как вызвать событие, когдапользователь нажимает на любую ссылку на боковой панели, например).когда пользователь нажимает на эту кнопку, всплывающее окно отображается с тремя кнопками.
Проблема в том, что я не знаю, как реализовать обработчики этих кнопок.
Это то, что у меня есть в файле ts
:
leaveOrStayModal() {
let e = event || window.event;
e.stopPropagation();
this.alertMixin.presentAlert(
'Do you want to leave this site?\n',
"You haven't saved your changes!",
'Stay',
'Leave',
'Save',
null,
() => {
console.log('leave handler')
// this.navCtrl.push() Here I don't know how to get the exact link clicked from the sidebar ? to go to
},
() => {
console.log('Save handler')
//here I want to save the form ?
}
)
}
всплывающий код:
presentAlert(title: string, message: string, btnOneText: string, btnTowText: string, btnThreeText: string,
btnOneHandler?: () => void, btnTowHandler?: () => void, btnThreeHandler?: () => void,
present: boolean = true) {
let confirm = this.alertCtrl.create({
title: title,
message: message,
buttons: [
{
text: btnOneText,
handler: () => {
if (btnOneHandler) {
btnOneHandler();
}
}
},
{
text: btnTowText,
handler: () => {
if (btnTowHandler) {
btnTowHandler();
}
}
},
{
text: btnThreeText,
handler: () => {
if (btnThreeHandler) {
btnThreeHandler();
}
}
}
]
});
if (present) {
confirm.present().then();
}
return confirm;
}
И эта кнопка показывает всплывающее окно (подлежит удалению)
<button ion-button icon-left item-right type="button" (click)="leaveOrStayModal()"> Click to show modal </button>