2012-11-01 65 views
64

在瀏覽器中加載時,有沒有一種方法可以調試angularjs應用程序?

即。我希望獲得當前應用程序的$rootScope。我會怎麼做?

回答

70

+1 Batarang

此外,您還可以從任何獲取範圍通過從控制檯執行以下操作,在DOM中執行以下操作:

angular.element(DOMNODE).scope() 

其中DOMNODE當然,對DOM節點的引用。

例如,在Chrome中元素選項卡,你可以選擇其中ng-app指令是節點,得到與

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

+1對於所選div的chrome $ 0。您也可以使用$ 1,$ 2作爲之前選定的元素。 –

+1

$ 0也適用於Safari的WebInspector。 – mikker

+6

使用相同的選擇器,您可以選擇'ng-app'元素,然後執行'var $ rootScope = angular.element($ 0).injector()。get('$ rootScope')'並使用它。 – maxdec

14

Batarang - 谷歌瀏覽器插件AngularJS

你安裝了這個之後,你可以做

的console.log($ rootScope);

並在您的chrome控制檯中檢查作用域對象。

順便說一句,如果你想獲得$ rootScope,你需要注入到控制器

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

} 
30

根範圍內開發者控制檯試試這個

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

只是想補充說,有一個名爲「Angular Scope Inspector」的免費Chrome擴展(current store url),它將自動檢查開發人員工具中所選元素的範圍。 NTS標籤

我今天才發現了它,這是非常有用的,IMO

3

你可以看到$ rootScope在你的源代碼開發工具 - >來源

$rootScope

0

在開發者控制檯類型angular.element('body').scope();如果你的應用程序是<body data-ng-app="SomeApp">