Одна вещь, которая выделяет AngularJS из других фреймворков JavaScript-MVC, - это способность эхоцитировать связанные значения из JavaScript в HTML с помощью привязок. Angular делает это автоматически, когда вы назначаете какое-либо значение переменной $scope.
Но как автоматическое это? Иногда Angular не будет получать изменения, поэтому мне нужно вызвать $scope. $Apply() или $scope. $Digest(), чтобы сообщить Angular, чтобы получить изменение. Иногда, когда я запускаю любой из этих методов, он выдает ошибку и говорит, что дайджест уже выполняется.
Так как привязки (что-либо внутри {{}} фигурных скобок или ng-атрибутов) повторяются с eval, значит ли это, что Angular постоянно запрашивает объект $scope для поиска изменений, а затем выполняет eval, чтобы подтолкнуть эти изменения в DOM/HTML? Или AngularJS каким-то образом выяснил использование магических переменных, которые запускают события, которые запускаются при изменении или назначении переменной? Я никогда не слышал о том, что он полностью поддерживается всеми браузерами, поэтому я сомневаюсь.
Как AngularJS отслеживает его привязки и переменные области видимости?