2015-02-23 85 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有一个非常有用的写了有关调试。