Existe-t-il un moyen, en JavaScript, de compter le nombre de montres angulaires sur toute la page?
Nous utilisons Batarang , mais cela ne répond pas toujours à nos besoins. Notre application est grande et nous souhaitons utiliser des tests automatisés pour vérifier si le nombre de montres augmente trop.
Il serait également utile de compter les montres par contrôleur.
Edit : voici ma tentative. Il compte les montres dans tout avec la classe ng-scope.
(function () {
var elts = document.getElementsByClassName('ng-scope');
var watches = [];
var visited_ids = {};
for (var i=0; i < elts.length; i++) {
var scope = angular.element(elts[i]).scope();
if (scope.$id in visited_ids)
continue;
visited_ids[scope.$id] = true;
watches.push.apply(watches, scope.$$watchers);
}
return watches.length;
})();
$scope
a un tableau $$ watchers avec le nombre d'observateurs sur ce contrôleur (enfin, si vous avez un ng-repeat ou quelque chose qui crée une autre portée, cela ne fonctionne pas très bien). Mais je pense qu'il n'y a aucun moyen de voir toutes les montres dans toute l'application.