我在我的 AngularJS 应用程序中看到了一些非常奇怪的行为。
制作单个 $broadcast 时,(唯一的)接收器会被触发两次。
对整个应用程序的影响就好像接收器只被触发了一次。(即只有一件物品被添加到购物篮中)。
如果您触发 $broadcast 两次(即在触发 $broadcast 的按钮上单击两次),您将执行四次接收器,但有两个项目被正确添加到篮子中。
这里有一些类似电子表格的重新计算吗?$scope 函数不需要影响“普通”javascript 变量吗?
我的问题是我添加了一个alert
并且它被显示了两次。
我在调试这个方面做了更多的工作:
我添加了一个计数器来计算接收到广播的次数。
如果范围(没有美元)是全球性的,我会得到加倍的结果。如果它的作用域是 Ctlr 函数的本地范围,我会得到一个非加倍的结果。
我能以某种方式创建我的控制器的两个实例吗?
我可以从萤火虫看到,从控制器完成的 $http ajax 请求只发生一次,所以我很困惑。