Одне, що відрізняє AngularJS від інших фреймворків JavaScript-MVC, - це здатність перетворювати пов'язані значення з JavaScript у HTML за допомогою прив'язок. Angular робить це "автоматично", коли ви присвоюєте будь-яке значення змінній $ scope.
Але наскільки це автоматично? Іноді Angular не піднімає зміну, тому мені потрібно зателефонувати $ scope. $ Apply () або $ scope. $ Digest (), щоб повідомити кутовий про отримання змін. Іноді, коли я запускаю будь-який із цих методів, він видає помилку і повідомляє, що дайджест уже триває.
Оскільки прив'язки (все, що знаходиться в фігурних дужках {{}} або атрибути ng), повторюються eval, то чи означає це, що Angular постійно опитує об'єкт $ scope для пошуку змін, а потім виконує eval для надсилання цих змін до DOM / HTML? Або AngularJS якимось чином розгадав використання магічних змінних, які запускають події, які запускаються, коли значення змінної змінюється або призначається? Я ніколи не чув про те, щоб він повністю підтримувався всіма браузерами, тож сумніваюся.
Як AngularJS відстежує свої прив'язки та змінні області?