我正在关注官方角度教程。我在第7步 - 路由和多个视图。
我已经为项目列表创建了一个视图,并为查看特定项目创建了另一个视图。通过GET请求从服务器加载项目列表。
从项目列表中,我点击了一个链接,该链接将我发送到特定项目视图,就像在教程中完成的那样。
但是当我按下浏览器的BACK按钮以获取项目列表视图时,浏览器会启动另一个GET请求以获取相同的列表。它为什么这样做? Aren的观点在隐藏状态或作为文档片段保存在dom中?在我看来,angular完全删除了视图,当你以后返回它时 - 它会完全重新创建它。在backbone.js中,我做了类似的事情,当我在视图之间导航时,浏览器不会发起新的GET请求......
有人可以解释为什么每次我导航到一个未经过任何修改的视图时,angular会进行额外的GET吗?
答案 0 :(得分:1)
AngularJS假设服务器已正确配置。如果您正在提供具有适当过期标头的静态内容,则您的浏览器应返回该视图的缓存版本。
这样做的好处是,如果需要,您可以将修改后的视图返回给用户代理。如果你走那条路,它也会促进HTML5模式。
答案 1 :(得分:0)
通过设计,角度路由会破坏旧视图以及从视图导航到视图时关联的任何控制器,但它不会将它们隐藏在DOM中,例如JQuery移动设备。
在我的情况下,我必须通过页面加载上的$ templateCache初始化将模板传递给应用程序。
您可以阅读更多here