javascript - que - ng-cloak not working
ComprobaciĆ³n sucia en angular (6)
De este enlace :
Angular define un concepto de un llamado ciclo de resumen. Este ciclo se puede considerar como un bucle, durante el cual Angular verifica si hay cambios en todas las variables observadas por todos los $ scopes. Entonces, si tiene $ scope.myVar definido en su controlador y esta variable fue marcada para ser observada, le está diciendo explícitamente a Angular que monitoree los cambios en myVar en cada iteración del ciclo.
Este " digest
" también se denomina "comprobación sucia" porque, de alguna manera, escanea el alcance de los cambios. No puedo decir si es para bien o para mal que un patrón observable. Depende de tus necesidades.
Algunos enlaces:
Estaba leyendo un artículo para entender un poco más cómo funciona angular.js .
Uno de los términos que no entendí es " comprobación sucia ".
¿Qué es exactamente? Parece un patrón de observador pero aparentemente es mejor.
¿Puedes ayudarme a entender esto por favor?
Gracias por adelantado.
EDITAR: también puede ser útil para las personas que quieren aprender más sobre eso ver este video desde swiip en NgEurope hace algunos años
Flujo de trabajo del mecanismo de comprobación sucia angular.
La comprobación sucia es un proceso simple que se reduce a un concepto muy básico: verifica si un valor ha cambiado y aún no se ha sincronizado en la aplicación.
Nuestra aplicación angular realiza un seguimiento de los valores de los relojes actuales. Angular recorre la lista de $ watch y, si el valor actualizado no ha cambiado desde el valor anterior, continúa por la lista. Si el valor ha cambiado, la aplicación registra el nuevo valor y continúa hacia abajo en la lista de $ watch.
La comprobación sucia verificará cualquier cambio en la variable $ scope y la actualizará al DOM. Esto hecho por angular js, también puede implementar la comprobación sucia por su cuenta.
Leí un excelente artículo sobre comprobación sucia en esta publicación de blog . También hubo esta respuesta SO
TLDR; versión
Cuando se activa el ciclo $ digest, los observadores verifican si hay algún cambio en el modelo del alcance y, si hay alguno (el cambio también puede provenir del dominio fuera del rango angular), se ejecutan las funciones correspondientes del oyente. Esto nuevamente ejecutará el ciclo $ digest y verificará si se modificó el modelo del alcance (la función del oyente también podría modificar el modelo del alcance).
En general, el ciclo $ digest se ejecutará dos veces, incluso si el oyente no cambia el modelo o hasta que llegue al recuento máximo de bucle de 10.
Solo modificando una respuesta anterior ...
Angular tiene un concepto de ''ciclo de resumen'' . Puedes considerarlo como un bucle. En el que Angular comprueba si hay cambios en todas las variables observadas por todos los $ scopes ( internamente $ watch () y $ apply () funciones se vinculan con cada variable definida en $ scope ).
Entonces, si tiene $ scope.myVar definido en su controlador (eso significa que esta variable ''myVar'' fue marcada para ser vista), le está diciendo explícitamente a Angular que monitoree los cambios en ''myVar'' en cada iteración del ciclo. Entonces, cuando el valor de ''myVar'' cambia, cada vez que $ watch () nota y ejecuta $ apply () aplica los cambios en DOM.
Este " Compendio " también se denomina " verificación sucia " porque, de alguna manera, escanea el alcance de los cambios. Como todas las variables observadas están en un solo bucle (ciclo de resumen), cualquier cambio de valor de cualquier variable obliga a reasignar valores de otras variables observadas en DOM.
PROS: Esta es la forma en que Angular logra el enlace de datos bidireccional.
CONTRAS: Si hay más variables observadas en una sola página (> 2000-3000), puede ver un retraso mientras carga la página. (Pero digo que si hay tantas ''variables observadas'' en una sola página, es una página incorrecta diseño: p).
Hay otros inconvenientes, así como también soluciones alternativas: D
¿Qué es una verificación sucia?
El proceso de verificar cada reloj para detectar los cambios se denomina verificación sucia. Podría haber dos escenarios
Primero -
- Obtenga un reloj de la lista
- Verifique si el artículo ha sido cambiado
- Si no hay cambio en el artículo, entonces
- No se ha realizado ninguna acción, pasar al siguiente elemento de la lista de observación
Segundo-
- Obtenga un reloj de la lista
- Verifique si el artículo ha sido cambiado
- Si hay Cambio en un artículo
- DOM necesita actualizarse, volver al ciclo de resumen
En el segundo caso, el ciclo continúa hasta que no encuentre cambios en todo el ciclo. Y una vez que se completa, DOM se actualiza si es necesario.