Skip to content

Instantly share code, notes, and snippets.

@synga
Created July 19, 2018 15:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save synga/57a788eb6e37e4d16f8741b2737918d3 to your computer and use it in GitHub Desktop.
Save synga/57a788eb6e37e4d16f8741b2737918d3 to your computer and use it in GitHub Desktop.
Implementação de m navguard para garantir que o usuário não deixe a view caso comece a preencher um formulário
// Todos os imports da sua página e @component
// para esse exemplo assumo que você esteja usando formbuilder/formgroup
export class suaPagina {
// propriedade que vai dizer se o usuário poderá ou não deixar a página
podeSair: boolean = false;
// CASO O USUARIO QUEIRA SAIR MAS TENHA PREENCHIDO ALGO.
ionViewCanLeave() {
// se a variavel para sair for falsa e seu formulário está em estado de 'dirty' (algo já foi preenchido) entra na condição
if (this.canLeave == false && this.seuForm.dirty) {
// pergunta ao usuário se ele deseja realmente sair
this.alerts.create({
title: "Deseja realmente sair?",
enableBackdropDismiss: true,
message: "Você irá perder os dados preenchidos",
buttons: [
{
text: 'Não',
role: 'cancel'
},
{
text: 'Sim',
handler: () => {
// seta a propriedade que ele pode sair em true e chama o pop para sair da página
this.podeSair = true;
this.navCtrl.pop();
}
}
]
}).present();
return false;
}
// se não entrar no if retorna true, ou seja, pode sair da página
return true;
};
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment