Aujourd'hui, j'ai rencontré un problème très étrange dans le projet. J'ai utilisé Oclazyload pour charger le module angulaire. Après avoir rafraîchi la page, j'ai cliqué sur le bouton de secours et je n'ai pas pu revenir à la page précédente. On estime que le mécanisme de chargement paresseux a été utilisé pour détruire l'association d'état à l'intérieur d'Angular, ce qui a entraîné l'incapacité de revenir à l'état précédent (l'événement $ statTechAngestart de l'interface utilisateur dans le bouton de secours ne sera pas déclenché). Bien sûr, ce n'est qu'une supposition, et le code source n'a pas été exploré en profondeur en raison de la relation de l'événement.
Solutions qui ne peuvent pas se replier après avoir rafraîchi le mécanisme de chargement paresseux angulaire:
En regardant le code source d'Angular (ionic), il est constaté qu'il existe une méthode onurlchange sur le service de navigateur $. Lorsque nous modifions l'adresse URL de l'extérieur Angular, la fonction de traitement des événements enregistrée dans cette méthode sera appelée, comme indiqué dans la figure ci-dessous:
De cette façon, vous pouvez enregistrer une fonction dans l'entrée du programme
// Lorsque l'état est rechargé via le bouton de secours / avant du navigateur, la page est rechargée. Si l'état du système est utilisé, cette méthode ne sera pas entrée. $ Browser.OnUrlchange (fonction (URL) {// TODO analyse l'état dans l'URL, utilise le chargement paresseux pour charger le module d'état pour réaliser une page de rafraîchissement});Grâce à cette fonction, vous pouvez à nouveau actualiser la page lorsque vous vous reposez et avancez ...
Ce qui précède est la solution rapide que le mécanisme de chargement paresseux angulaire ne peut pas être annulé après rafraîchissement. J'espère que ce sera utile à tout le monde. Si vous avez des questions, veuillez me laisser un message et l'éditeur répondra à tout le monde à temps. Merci beaucoup pour votre soutien au site Web Wulin.com!