zoukankan      html  css  js  c++  java
  • 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缓存起来。

  • 相关阅读:
    LINQTOSQL作为底层ORM框架后,我们的数据基类就变成了这个样子
    一個傳統的C2C網站的用戶充值的过程
    ajax跨域获取数据
    C#+HTML+JS生成的树完整代码
    核心Swing组件(六)
    Swing组件集合的事件处理(六)
    Swing组件集合的事件处理(四)
    核心Swing组件(四)
    核心Swing组件(三)
    核心Swing组件(五)
  • 原文地址:https://www.cnblogs.com/ifworld/p/8540509.html
Copyright © 2011-2022 走看看