¿Qué son $ digest y $ watch en AngularJS?

La función $ scope. $ Apply () se usa para ejecutar algún código, y luego llama $ scope. $ Digest () después de eso, de modo que todos los relojes se marcan y se invocan las funciones de escucha correspondientes. La función $ apply () es útil al integrar AngularJS con otro código.

Cuando crea un enlace de datos desde algún punto de su vista a una variable en el objeto $scope , AngularJS crea un “reloj” internamente. Un reloj significa que AngularJS observa los cambios en la variable en el objeto $scope . El marco es “observar” la variable. Los relojes se crean usando la función $scope.$watch() que trataré más adelante en este texto.

Para saber más con videos gratis Visita: $ Digest en AngularJS

Funciones AngularJS ($ watch (), $ digest (), $ apply)

En angularjs $ scope object tiene diferentes funciones como $ watch (), $ digest () y $ apply () y llamaremos a estas funciones como funciones centrales.

Las funciones centrales de angularjs $ watch (), $ digest () y $ apply se usan para vincular datos a variables a la vista y observar los cambios que ocurren en las variables.

Generalmente en angularjs usamos el objeto $ scope para vincular datos a variables y usar esos valores de variables donde sea que requiramos en la aplicación. En angularjs, cualesquiera que sean las variables que asignamos con el objeto $ scope, se agregarán a la lista de observación utilizando la función $ scope. $ Watch () .

En angularjs, una vez que se agreguen las variables a la lista de observación, la función $ scope.digest () recorrerá las variables de la lista de observación y comprobará si se realizaron cambios para esas variables o no. En caso de que se encuentren cambios para las variables de la lista de observación, la función del detector de eventos correspondiente inmediatamente llamará y actualizará los respectivos valores de las variables con un nuevo valor en vista de la aplicación.

La función $ scope. $ Apply () en angularjs se usa cuando queremos integrar cualquier otro código con angularjs. Generalmente, la función $ scope. $ Apply () ejecutará un código personalizado y llamará a $ scope. $ Digest () para verificar todas las variables de la lista de observación y actualizar los valores variables a la vista si se encuentran cambios para las variables de la lista de observación.

En la mayoría de las ocasiones, angularjs usará las funciones $ scope.watch () y $ scope.digest () para verificar y actualizar los valores en función de los cambios en los valores de las variables.

$ watch (): en Angular, a menudo necesita hacer un enlace de datos para modificar los datos. Cuando realiza un enlace de datos en $ scope a su vista, AngularJS crea un reloj. Eso significa que se busca un cambio en la variable en el objeto $ scope. El framework AngularJS observa una variable usando la función $ scope. $ Watch (). Cuando creas un reloj, se pasan dos parámetros:

  1. función de valor
  2. función oyente

//Ejemplo 1
$ scope. $ watch (function () {},
function () {}
);

// ejemplo 2
$ scope. $ watch (‘aModel’, function (newValue, oldValue) {
// actualiza el DOM con newValue
});

La función de valor devuelve el valor que está viendo la función $ watch. Así es como puede verificar el valor devuelto al último valor. Si se cambia el valor, se llama a la función oyente. Entonces puedes hacer lo que quieras con la función de oyente.

$ digest ():
La función $ scope. $ digest () se ejecuta en un ciclo sobre todos los relojes que se crean por angular. Llamará a la función de oyente si el valor se cambia en el objeto de alcance.

Tengo un notif para una solicitud de respuesta.

Desearía poder dar una respuesta autorizada, pero actualmente no puedo desde que soy nuevo en Angular. Actualmente estoy en ReactJS y Angular es el siguiente en línea después de haber alcanzado un nivel mínimo de experiencia en React. Sin embargo, aquí va una gran esencia:

$ watch es un método Angular central, a veces creado automáticamente, para ‘observar’ los cambios en una variable de ámbito.

$ digest, en ciertos puntos definidos o indefinidos en el tiempo durante el flujo de la aplicación, comprueba los cambios en las variables observadas y, en consecuencia, llama a los oyentes vinculados.

Estos son los métodos principales de AngularJs y creo que tendrá que ser exhaustivo en ellos, mucho, mucho más de lo que se proporciona en esta respuesta .