Quina diferència hi ha entre la compilació i l’enllaç a AngularJS?


Resposta 1:

Compilar: - La funció de compilació s'utilitza per a la manipulació de DOM de plantilla i si cal realitzar alguns càlculs comuns per a totes les referències d'una determinada directiva. S'executa en fase quan Angular recopila la vostra directiva. La funció de compilació no té abast. Així, si teniu diversos usos de directiva a la pàgina, la funció de compilació s'executarà una vegada. A més, la funció de compilació ha de retornar la funció d'enllaç, ja que s'ignora l'atribut d'enllaç si es defineix l'atribut de compilació.

Enllaç: - La funció d'enllaç s'utilitza normalment per registrar oients de DOM, $ watch expressions a l'abast, la manipulació de DOM per a la instància actual de la directiva. Aquesta funció s'executa en la fase d'enllaç, quan les dades de l'àmbit $ s'uneixen a la funció i després la funció d'enllaç retorna l'enllaç html.

Salutacions,

Sowmya, formador @ Millor Institut de formació en línia AngularJS a Hyderabad, Índia.


Resposta 2:

A la fase de compilació, l'analitzador angular comença a analitzar el DOM i sempre que l'analitzador troba una directiva, crea una funció. Aquestes funcions es denominen plantilla o funcions compilades. En aquesta fase, no tenim accés a les dades d’abast $.

Recopilació: recorre el DOM i recopila totes les directrius. El resultat és una funció d’enllaç.

Enllaç: combina les directrius amb un abast i produeix una visió en directe. Els canvis en el model d'abast es reflecteixen en la vista i les interaccions dels usuaris amb la vista es reflecteixen en el model d'abast. Que el model d’abast sigui una única font de veritat.

Algunes directrius com ara elements DOM clonats de ng-repetir una vegada per a cada element d'una col·lecció. Tenir una fase de compilació i enllaç millora el rendiment ja que només cal compilar una plantilla clonada una vegada i enllaçar una vegada per a cada instància de clon.


Resposta 3:

Compile - Funciona en plantilla. És com afegir un element de classe al DOM (és a dir, la manipulació de tElement = element de plantilla), per tant, les manipulacions que s'apliquen a tots els clons DOM de la plantilla associada a la directiva.

Enllaç: funciona en casos. Normalment s’utilitza per registrar oients de DOM (és a dir, $ watch expressions a l’àmbit d’instància) i també per a la manipulació de DOM d’instància. (és a dir, manipulació d’iElement = element d’instància individual).