Антипаттерн или способ убить scope
watch отслеживает изменения scope, и меняет одно из отслеживаемых значений затем сам же реагирует на своё изменение, тоесть уходит в бесконечный цикл. Создатели фреймворка глубину рекурсии искуственно ограничили 10ю вызовами, после 10 бросают исключение.
<!doctype html>
<html ng-app="myApp">
<head>
<style> </style>
<script src="http://code.angularjs.org/1.1.5/angular.min.js"></script>
<script language="javascript" type="text/javascript">
//Обьявим модуль
var myApp=angular.module('myApp', []);
//создадим дерективу
myApp.directive('test',function(){
return {
restrict:"E",
scope:{},
controller:function($scope){
$scope.count=0;
$scope.$watch ( function(){
alert('реагирую на count=' +$scope.count);
$scope.count++;
});
}
}
});
</script>
</head>
<body >
<test>count={{count}}</test>
</body>
</html>