Tengo una función de reloj en mi aplicación AngularJS.
$scope.$watch('quartzCrystal', function () {
...
}
Sin embargo, después de alguna condición (en mi ejemplo, cambiar la página en mi aplicación de una sola página ) quiero detener ese reloj (como borrar el tiempo de espera).
¿Cómo puedo hacer eso?
javascript
angularjs
watch
kamaci
fuente
fuente
$on('$destroy')
) o AngularJS se encargará de ellos? ¡Gracias!scope. $ watch devuelve una función que puede llamar y que anulará el registro del reloj.
Algo como:
fuente
También puede borrar el reloj dentro de la devolución de llamada si desea borrarlo justo después de que ocurra algo. De esa manera, su $ watch permanecerá activo hasta que se use.
Al igual que...
fuente
En algún momento su $ watch está llamando
dynamically
y creará sus instancias, por lo que debe llamar a la función de desregistro antes de su$watch
funciónfuente
Idealmente, cada reloj personalizado debe eliminarse cuando abandone el alcance.
Ayuda en una mejor gestión de la memoria y un mejor rendimiento de la aplicación.
fuente
Si tiene demasiados observadores y necesita eliminarlos a todos, puede insertarlos en una matriz y destruirlos
$watch
en un bucle.fuente
Para descartar la copia de los observadores, puede usar esto:
fuente