为什么控制器创建两次?

时间:2013-07-18 14:10:46

标签: angularjs jasmine

请考虑使用AngularJS应用程序:

方法addPane()将窗格推送到控制器的窗格列表中,paneCount()返回其长度。创建3个窗格后,从绑定paneCount()访问方法{{paneCount()}}并直接在test:scope.paneCount()中返回0.

AngularJS似乎创建了两个控制器实例 - 一个可以从控制器方法访问,另一个可以从范围访问。有人知道为什么需要创建两个实例吗?有没有办法从控制器和范围方法访问相同的属性?

1 个答案:

答案 0 :(得分:1)

问题是你的控制器定义!你定义了两次范围。一次在控制器本身,一次在tabs指令的指令定义中。指令定义会覆盖控制器的范围,因此计数将不正确。

// scope: {}, not necessary because defined in controller ctrl

希望这有助于:)