Comment détecter si un utilisateur clique sur le bouton retour du navigateur dans Angularjs
J'ai un formulaire-comme la page avec quelques données. Et souhaitez afficher un popup/alerte lorsqu'un utilisateur clique sur le bouton précédent du navigateur, se demandant "si ils veulent revenir ou de rester sur la même page". Je suis à l'aide angulaire de l'interface utilisateur du routeur $stateProvider
et souhaitez lier cela à un seul etat/view.
source d'informationauteur linyuanxie
Vous devez vous connecter pour publier un commentaire.
C'est ma réponse précédente pour une autre question, mais il devrait être bon pour vous aider à
Vous pouvez le faire en utilisant angulaire
$routeChangeStart
$routeChangeStart
Diffusé avant un changement d'itinéraire. À ce stade de la route les services de résoudre toutes les dépendances nécessaires pour le changement d'itinéraire pour se produire. Typiquement, cela implique d'aller chercher le point de vue du modèle ainsi que toutes les dépendances définies dans la résolution de route de la propriété. Une fois que toutes les dépendances sont résolues $routeChangeSuccess est déclenché.
Le changement d'itinéraire (et le
$location
changement qui a déclenché cela peut être évité par l'appel depreventDefault
méthode de l'événement. Voir$rootScope.Scope
pour plus de détails sur l'événement de l'objet.De sorte s'il vous plaît essayez ce code ci-dessous.
Mise à jour:
Vous devez écrire votre travail fonctionnel dans le modèle contextuel. comme
Mettre quelques boutons de lien pour
puis Ajouter ng-cliquez sur l'événement pour aller prev page, restez à la page en cours avec l'aide de
return false
etc.NE FONT SENS MEC?
Vous feriez mieux d'utiliser $stateChangeStart événement angulaire de l'interface utilisateur du routeur. Il y aura des problèmes avec $routeChangeStart $routeChangeStart événement sera déclenché lorsque l'url change.
Par exemple:
Vous avez 4 états, chacun avec 2 sous-état, et chaque sous/de l'état ou de l'état n'est pas associée à une url. Dans de tels cas, l'écoute de $routeChangeStart peut ne pas fonctionner.
Dans le contrôleur/vue où vous voulez demander à l'utilisateur de confirmer la redirection de le faire.
Ce sera appelée lorsque l'état des changements dans votre périmètre actuel (qui est le point de vue/contrôleur)
Voici ma solution