AngularJs 禁止模板缓存
2016-01-23 16:06
691 查看
因为AngularJs的特性(or 浏览器本身的缓存?),angular默认的HTML模板加载都会被缓存起来。导致每次修改完模板之后都得经常需要清除浏览器的缓存来保证浏览器去获得最新的html模板,自己测试还好,但如果更新了服务器的模板内容,用户可不会每个都配合你去清除浏览器的缓存。故这还真是个大问题。
方法一:在模板文件路径后加时间戳(or 其他随机数),强制AngularJs每次从服务器加载新的模板
不过这种方法太不美观了。。。。
方法二:使用$templateCache清除缓存
在配置 路由地址后,即在app.config之后添加这段代码,可禁止AngularJs将templateUrl缓存起来。
app.config(function($routeProvider, $locationProvider) { $routeProvider .when('/Book/:bookId/ch/', { templateUrl: 'chapter.html', controller: 'ChapterController' }); });
方法一:在模板文件路径后加时间戳(or 其他随机数),强制AngularJs每次从服务器加载新的模板
<pre name="code" class="javascript">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缓存起来。
相关文章推荐
- AngularJS展示数据的ng-bind指令和{{}} 区别
- AngularJS中监视Scope变量以及外部调用Scope方法
- AngularJS使用ngOption实现下拉列表的实例代码
- 從Knockout到AngularJS
- AngularJS中监视Scope变量以及外部调用Scope方法
- AngularJS使用ngOption实现下拉列表的实例代码
- AngularJS中监视Scope变量以及外部调用Scope方法
- Angularjs scope
- 《AngularJS》5个实例了解Directive
- AngularJs学习
- AngularJS中控制器继承
- AngularJS学习笔记
- [改]AngularJS入门教程00:引导程序
- AngularJS中Scope间通讯Demo
- Angularjs 回到顶部指令
- AngularJS 详解
- AngularJS中有关Directive的汇总
- Angular:依赖注入
- Visual Studio 2015 Owin+MVC+WebAPI+ODataV4+EntityFrawork+Identity+Oauth2.0+AngularJS 1.x 学习笔记之"坑"
- AngularJS学习之指令作用域