当页面刷新时,AngularJS中会发生什么?

时间:2016-04-17 22:17:59

标签: javascript angularjs scope

当您手动刷新页面时,我想知道Angular中的数据,作用域,缓存(以及我可能还不知道的其他Angular概念)究竟发生了什么。

上下文

我有一个树状的分层数据,它是从服务中的平面数组生成的,并使用递归ng-templateng-repeat在视图中呈现。我的应用程序中的每个路径都有基于参数的不同树(但是从同一个数组生成)。

问题

当我第一次显示树时,它呈现得很好。然后,我选择其他路线并为它生成树,也没关系。如果我然后返回并选择第一个路线,在视图中渲染的几个不必要的元素(我检查了我生成的树是否有缺陷,但它是正确的)。如果我重复这个动作几次,我会收到错误:

Error: [$rootScope:infdig] 10 $digest() iterations reached. Aborting!

当我看到损坏的视图(包含不必要的元素)并刷新页面时,呈现正常。 在我检查传递的数据是否正确之后,我认为在递归渲染期间可能会填充一些内部Angular缓冲区或缓存,并且当我在视图之间切换时它不会被清空。

问题/ S

  • 刷新页面时,Angular究竟清空了什么?
  • 如何在我的案例中只清空相关的缓存?

1 个答案:

答案 0 :(得分:2)

  

刷新页面时,Angular究竟清空了什么?

AngularJS是一个JavaScript框架。

与原生JS一样,当您刷新页面时,所有内容都会被清空。

如果要在刷新之间保存值,则必须使用浏览器存储系统。

关于此主题有几篇帖子: