Injection rapide

Si vous débuguez des apps AngularJS, vous devez connaître la commande pour accéder à n'importe quel service depuis la console. Sinon, la voici, et vous allez vouloir vous en servir sans arrêt :

angular.element('html').injector().get('ServiceName')  

Sauf que c'est un peu chiant à taper. Alors vous pouvez ajouter un bookmarklet en glissant :

javascript:inject = angular.element('html').injector().get  

dans votre barre de favori. Vous n'aurez alors qu'à cliquer dessus une seule fois après le chargement de votre app pour créer une variable inject vous permettant d'injecter le service de votre choix :

inject('$http').get('/').then(function(data) { console.log(data) })  

EDIT :

Un moyen encore plus pratique pour chopper son service rapidement à l'aide d'un prompt :

javascript:var service = prompt('Service name'); console.log(window[service] = angular.element('html').injector().get(service));  

Un dialogue vous demandera alors le nom du service et celui sera alors immédiatement loggué dans la console et publié sous son nom. Si vous demandez $http alors une variable globale $http sera ajouté à window et vous pourrez jouer avec dans la console.

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