Nombre de watchers

Finalement, les bookmarklets pour debugguer du AngularJS, c'est presque plus pratique que les extensions de navigateur. En voici un nouveau tiré de cet excellent article exposant les 10 erreurs les plus fréquentes que font les développeurs en découvrant AngularJS :

javascript:(function () {  
  var root = angular.element(document.getElementsByTagName('body')[0]);
  var watchers = [];
  var f = function (element) {
    if (element.data().hasOwnProperty('$scope')) {
      angular.forEach(element.data().$scope.$$watchers, function (watcher) {
        watchers.push(watcher);
      });
    }
    angular.forEach(element.children(), function (childElement) {
      f(angular.element(childElement));
    });
  };
  f(root);
  alert(watchers.length);
})();

Ce bookmarklet inscrira dans votre console le nombre de watchers que contient votre application. Gare à vos perfs si vous approchez des 2000 !

Hadrien

Hi, I'm a french Javascript Lead Developer, Web Architect from Toulouse, France. I've worked for 12 years for many projects with YUI, AngularJS, Aurelia.io and now React and React native.

Toulouse, France https://hadrien.eu