2012-11-01 12 views
64

Czy istnieje sposób debugowania aplikacji angularjs, gdy jest ona załadowana do przeglądarki?

tj. Chcę uzyskać $rootScope z mojej obecnej aplikacji. Jak to zrobić?

Odpowiedz

70

+1 dla Batarang

Ponadto, można uzyskać z dowolnego zakresu element w DOM, wykonując następujące czynności z konsoli:

angular.element(DOMNODE).scope() 

Gdzie DOMNODE jest Oczywiście, odniesienie do węzła DOM.

Na przykład w Chrome w zakładce elementów można wybrać węzeł, w którym dyrektywa ng-app jest i uzyskać zakres korzeniowy z

angular.element($0).scope() 
+10

+1 Dla chrome $ 0 dla wybranego div. możesz także użyć 1 $, 2 $ za poprzednio wybrany element. –

+1

$ 0 działa również w WebInspector Safari. – mikker

+6

Używając tego samego selektora, możesz wybrać element 'ng-app', a następnie' var $ rootScope = angular.element ($ 0) .injector(). Get ('$ rootScope') 'i grać z nim. – maxdec

14

Batarang - Wtyczka Google Chrome dla angularjs

Po zainstalowaniu tego można zrobić

console.log ($ rootScope);

i sprawdź obiekt zakresu w konsoli chrome.

BTW, jeśli chcesz dostać $ rootScope, trzeba wstrzyknąć do kontrolera

jak

app.controller('MainCtrl', function($scope, $rootScope) { 

} 
30

W konsoli programisty spróbować tej

$rootScope = angular.element(document).scope() 
2

Po prostu chciałem dodać, że istnieje bezpłatne rozszerzenie Chrome o nazwie "Angular Scope Inspector" (current store url), które automatycznie sprawdza zakres wybranych elementów w narzędziach deweloperskich. Zakładka NTS

Właśnie odkryliśmy, że dzisiaj, i to bardzo użyteczne, IMO

3

Widać $ rootScope w źródłach Developer Narzędzia-> Źródła

$rootScope

0

W deweloperskim typu konsoli angular.element('body').scope(); w przypadku Twojej aplikacji to <body data-ng-app="SomeApp">

Powiązane problemy