AngularJs 禁止模板缓存 AngularJs 禁止模板缓存的方法

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

AngularJs 禁止模板缓存 AngularJs 禁止模板缓存的方法

君醉酒   2021-03-28 我要评论
想了解AngularJs 禁止模板缓存的方法的相关内容吗,君醉酒在本文为您仔细讲解AngularJs 禁止模板缓存的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:AngularJs,禁止模板缓存,AngularJs,模板缓存,下面大家一起来学习吧。

本文介绍了AngularJs 禁止模板缓存的方法,分享给大家,也给自己留个笔记,具有如下:

因为AngularJs的特性(or 浏览器本身的缓存?),angular默认的HTML模板加载都会被缓存起来。导致每次修改完模板之后都得经常需要清除浏览器的缓存来保证浏览器去获得最新的html模板,自己测试还好,但如果更新了服务器的模板内容,用户可不会每个都配合你去清除浏览器的缓存。故这还真是个大问题。

app.config(function($routeProvider, $locationProvider) { 
 $routeProvider 
  .when('/Book/:bookId/ch/', { 
  templateUrl: 'chapter.html', 
  controller: 'ChapterController' 
 }); 
}); 

方法一:在模板文件路径后加时间戳(or 其他随机数),强制AngularJs每次从服务器加载新的模板

app.config(function($routeProvider, $locationProvider) { 
 $routeProvider 
  .when('/Book/:bookId/ch/', { 
  templateUrl: 'chapter.html' + '?datestamp=' + (new Date()).getTime(), 
  controller: 'ChapterController' 
 }); 
}); 

不过这种方法太不美观了。。。。

方法二:使用$templateCache清除缓存

// 禁止模板缓存 
app.run(function($rootScope, $templateCache) { 
  $rootScope.$on('$routeChangeStart', function(event, next, current) { 
    if (typeof(current) !== 'undefined'){ 
      $templateCache.remove(current.templateUrl); 
    } 
  }); 
}); 

在配置 路由地址后,即在app.config之后添加这段代码,可禁止AngularJs将templateUrl缓存起来。

猜您喜欢

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们