gpt4 book ai didi

javascript - 当页面刷新时,AngularJS 到底会发生什么?

转载 作者:行者123 更新时间:2023-12-02 14:45:05 25 4
gpt4 key购买 nike

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

上下文

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

问题

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

错误:[$rootScope:infdig] 已达到 10 次 $digest() 迭代。正在中止!

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

问题

  • 刷新页面时,Angular 中到底清空了什么?
  • 在我的情况下,如何才能只清空相关缓存?

最佳答案

What exactly is emptied in Angular when you refresh the page?

AngularJS 是一个 JavaScript 框架。

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

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

有几篇关于此主题的帖子:

关于javascript - 当页面刷新时,AngularJS 到底会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36682831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com