2015-02-23 81 views
3

通常當I'm與控制器的工作,我結合我需要的$scope從標記訪問這些數據的變量。但是當我使用controllerAs時,數據應該附加到控制器中的"this"如何調試通過控制檯,其通過controllerAs綁定到控制器AngularJS

的那麼"this.foo = 'bar'"代替"$scope.foo = 'bar'"

但我怎麼能調試數據然後與開發者控制檯中的瀏覽器?通常我有我的"AngularJS Batarang"插件,我可以打印當前範圍的一部分,但我不知道如何打印綁定到控制器的數據。

+0

好的舊觀察點經常被忽略,但是確實有獨特的能力來暫停/捕獲/報告即使在控制檯無法訪問的數據。 – dandavis 2015-02-23 08:19:26

回答

2

您實際上以相同的方式使用$scope; controllerAs的名稱將在您的$scope上。

因此,如果controllerAs被命名爲 「myController的」:

  • 打開開發人員工具
  • 選擇 「檢查元素」 在頁面上的東西。控制檯窗口現在,可以爲元素訪問$scope(感謝Batarang)
  • 現在您可以鍵入$scope.myController.foo以訪問屬性。

每次在DOM中選擇不同的元素時,控制檯窗口中的$scope對象將引用適當的內容。

+0

非常感謝您的幫助!這是正確的提示。我已經嘗試過,但問題是,我在下面的Plunker預覽版中嘗試了它(http://embed.plnkr.co/ZtuoTVgPLuMWDT2ejULW/preview),並且由於內容包含在我無法達到的iframe中範圍正常。 – qstiegler 2015-02-24 09:01:48

+0

如果你沒有Batarang擴展,你可以(首先「檢查元素」的東西,然後)做'angular.element($ 0).scope()。myController.foo' – Bloke 2015-11-23 10:47:01

0

如果我正確以下你的問題,你可以通過使用調試綁定到控制器的值:

var ctrl = ele.controller(); 

post有一個非常有用的寫了有關調試。