因為AngularJs的特性(or 瀏覽器本身的快取?),angular預設的HTML模板載入都會被快取起來。導致每次修改完模板之後都得經常需要清除瀏覽器的快取來保證瀏覽器去獲得最新的html模板,自己測試還好,但如果更新了伺服器的模板內容,用戶可不會每個都配合你去清除瀏覽器的快取。故這還真是個大問題。本文我們主要介紹AngularJs 禁止模板快取的方法。
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快取起來。
相關推薦:
#以上是AngularJs 禁止模板快取的方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!