我目前正在处理一些带有延迟加载内容+控制器的代码。我的代码基本上像这个 fiddle一样工作。但是,由于某种原因,我的版本不起作用,而是每当 angular 尝试更新它的视图时,我都会得到一个无限的摘要循环。
当我ng-include
从这个简单的重复语句中删除时,问题就消失了:
<div class="container" ng-repeat="pageName in pageNames">
<div ng-include="pageName"></div>
</div>
最奇怪的部分:exact same error
即使pageNames
从未分配给范围,也会发生。两个范围(外部和内部控制器的范围 - 我都有一个)可以完全为空(我检查了 Batarang - 我只有两个空范围),我仍然得到错误。
我的代码有点太复杂了,有太多其他依赖项,所以在这里发布它是没有意义的。它最纯粹的版本是上面的小提琴。我找不到两者之间的逻辑差异。当我用 Batarang 检查我的示波器时,我也没有发现任何可疑之处:
- 我没有在我的范围内使用函数
- 我没有利用
$watch
- 我没有利用
ng-model
我的结论是我没有明确地改变任何东西,所以它一定是有角的。
我能否以某种方式让 Angular 或 Batarang 告诉我在摘要迭代后哪些范围变量发生了变化,以便我可以确定导致无限循环的罪魁祸首?
更新:
我终于想通了,history.pushState
一切都搞砸了。我现在正在寻找替代方案,例如$location
服务。尽管如此,我仍然想知道如何调试这类问题。有什么提示吗?