angulaire.js - mécanisme de chargement et de compilation d'Angularjs
阿神
阿神 2017-05-15 17:11:14
0
2
585

Tout d'abord, parlons de l'environnement technique actuel : angulaire1.6, ui-route, require Questions :
1 Lequel du modèle chargé par ui-route et du contrôleur enregistré dynamiquement est compilé et exécuté. d'abord? Par exemple : Si je veux obtenir la largeur du #id du modèle, je dois avoir $timeout ? Sinon, undefine
apparaîtra 2. La compilation de l'instruction personnalisée est-elle chargée avant le modèle ? chargé en parallèle ?
C’est un peu déroutant, alors j’implore des réponses. J’aimerais également vous remercier pour les articles et explications associés !
Question supplémentaire : {{}} convertira-t-il automatiquement le type en chaîne ?
Merci, merci beaucoup pour la réponse aussi

阿神
阿神

闭关修行中......

répondre à tous(2)
淡淡烟草味

官方有详细解释,关于编译过程的介绍:

La compilation HTML se déroule en trois phases :

  1. $compile traverse le DOM et correspond aux directives.

    Si le compilateur constate qu'un élément correspond à une directive, alors la
    directive est ajoutée à la liste des directives qui correspondent à l'élément DOM
    . Un seul élément peut correspondre à plusieurs directives.

  2. Une fois que toutes les directives correspondant à un élément DOM ont été identifiées, le
    compilateur trie les directives selon leur priorité.

    Les fonctions de compilation de chaque directive sont exécutées. Chaque fonction de compilation
    a la possibilité de modifier le DOM. Chaque fonction de compilation
    renvoie une fonction de lien. Ces fonctions sont composées en une fonction de lien
    "combinée", qui invoque la fonction
    lien renvoyée par chaque directive.

  3. $compile lie le modèle à la portée en appelant la fonction de liaison combinée
    de l'étape précédente. Cela appellera à son tour la
    fonction de liaison des directives individuelles, enregistrant les auditeurs
    sur les éléments et en configurant des $watchs avec la portée comme chaque
    directive est configurée pour le faire.

Le résultat est une liaison en direct entre le scope et le DOM. Donc à ce stade, un changement dans un modèle sur la portée compilée sera reflété dans le DOM.

具体请题主详读 https://docs.angularjs.org/gu... 这篇关于compiler的文章.

洪涛
  1. Je pense que la séquence devrait être comme ceci : chargez le modèle et accédez au contrôleur en même temps, initialisez les données dans le contrôleur, puis entrez dans l'étape $digest pour restituer le modèle. Par conséquent, vous risquez de ne pas obtenir la largeur du #id du modèle pendant le processus de chargement du contrôleur.
    Écrivez un $timeout qui exécutera le code dans le délai d'attente après la fin de $digest et déclenchera à nouveau $digest.

  2. La phase de compilation des instructions personnalisées détermine en fait la structure du modèle. La phase de compilation peut modifier la structure du modèle. La phase de liaison prépare les données puis restitue le modèle.

S'il y a quelque chose qui ne va pas, corrigez-moi et discutez-en.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal