您好,登錄后才能下訂單哦!
本文介紹了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緩存起來。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。