Saya memiliki fungsi arloji dalam aplikasi AngularJS saya.
$scope.$watch('quartzCrystal', function () {
...
}
Namun, setelah beberapa kondisi (dalam contoh saya, mengubah halaman pada aplikasi satu halaman saya) saya ingin menghentikan arloji itu (seperti membersihkan timeout).
Bagaimana saya bisa melakukan itu?
javascript
angularjs
watch
kamaci
sumber
sumber
$on('$destroy')
) atau AngularJS akan merawat mereka? Terima kasih!scope. $ watch mengembalikan fungsi yang dapat Anda panggil dan yang akan membatalkan registrasi arloji.
Sesuatu seperti:
sumber
Anda juga dapat menghapus arloji di dalam callback jika Anda ingin menghapusnya segera setelah sesuatu terjadi. Dengan begitu $ watch Anda akan tetap aktif sampai digunakan.
Seperti ...
sumber
Kadang-kadang $ watch Anda menelepon
dynamically
dan itu akan membuat contohnya sehingga Anda harus memanggil fungsi deregistrasi sebelum$watch
fungsi Andasumber
Idealnya, setiap jam tangan khusus harus dihapus ketika Anda meninggalkan ruang lingkup.
Ini membantu dalam manajemen memori yang lebih baik dan kinerja aplikasi yang lebih baik.
sumber
Jika Anda memiliki terlalu banyak pengamat dan Anda harus menghapus semuanya, Anda dapat mendorong mereka ke dalam array dan menghancurkan setiap
$watch
dalam satu lingkaran.sumber
Untuk membuang salinan pengamat, Anda dapat menggunakan ini:
sumber