在AngularJS中手动清除$ templateCache的最佳方法

mrb*_*398 9 caching browser-cache angularjs

我正在研究一个系统,它在整个系统中都使用了大量的html模板文件.

问题是当我部署更新时,用户无法看到html更改,因为他们的浏览器正在使用它们的缓存版本.到目前为止,我能够让用户看到HTML更新的唯一方法是让他们执行浏览器的硬重载.

出于显而易见的原因,这并不理想.当用户迁移到这个系统时,它已成为一项繁琐的工作,确保每个人都执行该操作

有没有办法可以强制浏览器访问系统来清除模板缓存?也许在登录系统时手动清除它?

Ram*_*ran 7

$templateCache.removeAll() 最好删除模板缓存

示例代码

myApp.run(function($rootScope, $templateCache) {
   $rootScope.$on('$viewContentLoaded', function() {
      $templateCache.removeAll();
   });
});
Run Code Online (Sandbox Code Playgroud)

  • 通过添加上面的代码,它似乎按预期工作.但是现在我添加的模块没有加载模板文件(错误:[$ compile:tpload]无法加载模板:template/pagination/pagination.html) (3认同)