1. J'obtiens des informations utilisateur via ajax dans app.run(). Je dois utiliser les informations utilisateur obtenues dans le contrôleur, mais je trouve que parfois, lorsque je l'exécute dans le contrôleur, j'obtiens les informations utilisateur dans l'application. .run(). Les informations ajax n'ont pas encore été renvoyées, ce qui a entraîné une erreur. Existe-t-il une bonne solution ? On a l'impression que la commande est foirée lorsque l'on rencontre beaucoup d'ajax ?
Pourquoi les données de la requête doivent-elles être mises en exécution ? js doit prêter attention aux problèmes asynchrones.
Vous pouvez demander des données via ajax (il est recommandé d'utiliser $http) dans le contrôleur Avant que les données ne reviennent, placez un cercle de chargement sur la page. Une fois les données arrivées, elles seront actualisées. page et le chargement sera masqué.
Vous pouvez également utiliser l'attribut de résolution de la route. Cela permet d'attendre que les données soient obtenues avant de charger la page. Veuillez vous référer au tutoriel de routage pour une utilisation spécifique.
Les deux méthodes sont très simples à utiliser, j'aime personnellement la première.
Résoudre dans le routeur
Vous pouvez obtenir la promesse demandée par ajax lors de l'exécution dans le contrôleur, puis écrire le code dans le rappel then.
Vous pouvez également surveiller les informations utilisateur souhaitées dans le contrôleur, puis exécuter votre logique lorsqu'il y a de la valeur.
Vous pouvez définir une variable ok une fois l'exécution ajax terminée pour identifier si le succès
Dans le contrôleur
fonction waitOK() {
}