如何在angularjs中绕过模板缓存?

时间:2015-09-09 06:31:46

标签: javascript angularjs templates angular-templatecache

当我在代码中的任何模板(html)中进行更改并从浏览器刷新时,应用程序中不会发生更改。

当我在任何模板中进行更改时,我想绕过模板缓存,即当我在模板中进行任何更改并从浏览器刷新时,我希望代码应该更新代码而不是来自$templateCache

我怎么能以编程方式知道模板有任何变化?

我也从Stackoverflow参考中尝试过这段代码。

app.run(function($rootScope, $templateCache) {
   $rootScope.$on('$viewContentLoaded', function($event) {
       console.log($event);
       alert("abc");
      //$templateCache.removeAll();
        $templateCache("templates").removeAll();
   });
});

2 个答案:

答案 0 :(得分:1)

我认为这是因为您积极处理网页并希望立即查看更改,而不是您实际需要进行生产的内容? 如果是这样,那么您可以在浏览器中关闭缓存。在Chrome中,您可以通过转到开发人员工具来完成此操作 - >设置 - >常规并勾选'禁用缓存(当DevTools打开时)

答案 1 :(得分:0)

无论您的逻辑如何,浏览器都可以进行一些缓存。

如果您不希望缓存请求,请尝试发送标头:Cache-Control: no-cache(第14.9节)。

  

无缓存:

     

如果no-cache指令没有指定字段名,那么缓存绝不能使用响应来满足后续请求   没有使用原始服务器成功重新验证。这允许一个   原始服务器,以防止缓存,即使是已经存在的缓存   配置为返回对客户端请求的陈旧响应。

对于开发,您还可以在浏览器中禁用缓存,或使用ctrl+f5 / ctrl+shift+R或浏览器/操作系统的组合键,这将强制重新加载绕过缓存的页面。