Created
July 19, 2018 15:19
-
-
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
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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