Jika saya memiliki arahan yang merespons status atribut tertentu pada cakupan, dan saya ingin mengubah atribut itu dalam pengujian saya dan memverifikasi bahwa itu merespons dengan benar, manakah cara terbaik untuk melakukan perubahan itu?
Saya telah melihat kedua pola ini:
scope.$apply(function() {
scope.myAttribute = true;
});
dan
scope.myAttribute = true;
scope.$digest();
Apa perbedaan di antara keduanya, dan mana yang lebih baik serta mengapa?
sumber
$digest
juga disebut pada anak-anak lingkup ini?$digest
tidak hanya pengamat api pada ruang lingkup saat ini, tetapi juga pada semua anak-anaknya.Karena dokumentasinya sendiri menyebutkan $ digest cycle akan dijalankan setiap kali Anda melakukannya
$scope.$apply
. Sesuai panduan pengembang tentang ruang lingkupDan sesuai dengan dokumentasi Scope API
Jadi, Anda tidak boleh memanggil secara eksplisit
$digest
,$apply
metode pemanggilan Anda akan memicu siklus intisari.sumber