Esiste un modo, in JavaScript, per contare il numero di orologi angolari sull'intera pagina?
Usiamo il Batarang , ma non sempre soddisfa i nostri bisogni. La nostra applicazione è grande e siamo interessati all'utilizzo di test automatici per verificare se il conteggio degli orologi aumenta troppo.
Sarebbe anche utile contare gli orologi per controller.
Modifica : ecco il mio tentativo. Conta orologi in tutto con 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
ha un array di watcher $$ con il numero di watcher su quel controller (beh, se hai qualche ng-repeat o qualcosa che crea un altro ambito, non funziona così bene). Ma penso che non ci sia modo di vedere tutti gli orologi nell'intera app.