Índice

Funcionamiento del binding

Una de las funcionalidades principales provista por AngularJS es el binding. Con el binding one-way, cada vez que una propiedad del modelo cambia, la vista se actualiza automáticamente. El binding two-way permite, además, actualizar el modelo cuando cambia la vista. Estos bindings están disponibles utilizando la directiva ngModel para el two-way, y utilizando la directiva ngBind o la sintaxis {{ }} para el one-way.

Estas directivas se basan en el mecanismo de watch para suscribirse a los cambios de la propiedad del modelo y poder sincronizar la vista con los nuevos valores.

link: function(scope, element, attrs) {  
    scope.$watch(attrs.ngBind, function(newValue, oldValue) {  
           // Actualizar el DOM con el nuevo valor  
    });  
}

El código anterior representa un fragmento del método link de la directiva ngBind. Se realiza un watch para suscribirse a los cambios de la propiedad vinculada. Con cada cambio, la directiva actualizará el elemento HTML vinculado.

El mecanismo de watch es, por tanto, un elemento fundamental en el funcionamiento de una aplicación AngularJS. Pero ¿en qué momento se ejecutan los watch para verificar si el valor supervisado ha cambiado?

1. Ciclo digest

AngularJS funciona mediante los ciclos digest. En cada ciclo digest, AngularJS va a evaluar todos los watchs registrados, y si el valor devuelto por el watch ha cambiado, se ejecutará la función asociada. ...