角度视图不会持久化

时间:2014-04-27 10:01:05

标签: javascript angularjs

我正在关注官方角度教程。我在第7步 - 路由和多个视图。

我已经为项目列表创建了一个视图,并为查看特定项目创建了另一个视图。通过GET请求从服务器加载项目列表。

从项目列表中,我点击了一个链接,该链接将我发送到特定项目视图,就像在教程中完成的那样。

但是当我按下浏览器的BACK按钮以获取项目列表视图时,浏览器会启动另一个GET请求以获取相同的列表。它为什么这样做? Aren的观点在隐藏状态或作为文档片段保存在dom中?在我看来,angular完全删除了视图,当你以后返回它时 - 它会完全重新创建它。在backbone.js中,我做了类似的事情,当我在视图之间导航时,浏览器不会发起新的GET请求......

有人可以解释为什么每次我导航到一个未经过任何修改的视图时,angular会进行额外的GET吗?

2 个答案:

答案 0 :(得分:1)

AngularJS假设服务器已正确配置。如果您正在提供具有适当过期标头的静态内容,则您的浏览器应返回该视图的缓存版本。

这样做的好处是,如果需要,您可以将修改后的视图返回给用户代理。如果你走那条路,它也会促进HTML5模式。

答案 1 :(得分:0)

通过设计,角度路由会破坏旧视图以及从视图导航到视图时关联的任何控制器,但它不会将它们隐藏在DOM中,例如JQuery移动设备。

在我的情况下,我必须通过页面加载上的$ templateCache初始化将模板传递给应用程序。

您可以阅读更多here