recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - problème de commande d'angularjs ?

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 ?

曾经蜡笔没有小新曾经蜡笔没有小新2828 Il y a quelques jours633

répondre à tous(4)je répondrai

  • 迷茫

    迷茫2017-05-15 17:02:54

    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épondre
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-15 17:02:54

    Résoudre dans le routeur

    répondre
    0
  • 怪我咯

    怪我咯2017-05-15 17:02:54

    1. 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.

    2. 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.

    répondre
    0
  • 天蓬老师

    天蓬老师2017-05-15 17:02:54

    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() {

            if (ok) {
                setTimeout(function() {
                    waitOK();
                }, 100);
            } else {
                //todo....
            }

    }

    répondre
    0
  • Annulerrépondre