我使用templateUrl
,效果很好!
app.directive('myDir', function() {
return {
templateUrl: 'partials/directives/template.html'
};
};
然而......当我对这些模板进行更改时,它不会更新。在开发过程中,这不是一个大问题,因为我知道更新了什么,可以手动清除缓存。
但我无法清除所有用户的缓存。有没有办法做到这一点?就像使用CACHE-CONTROL metatag或类似的东西一样?
答案 0 :(得分:1)
据我所知,您有两种选择 -
使用$cacheFactory
服务删除旧缓存
获取模板后,Angular会将其缓存在默认的$ templateCache服务
// Please note that $cacheFactory creates a default key '$http'
var cache = $cacheFactory.get('$http');
// The remove() function removes a key-value pair from the cache,
// if it’s found. If it’s not found, then it just returns undefined.
cache.remove(your url);
使用文件版本控制 每次更改时重命名文件 - 即如果您的文件的第一个版本是template-1.0.1.html,则在进行一些代码更改时将其重命名为template-1.0.2.html,依此类推。这样,每次进行一些更改时都会下载新文件。
答案 1 :(得分:0)
快速而肮脏的解决方案是禁用$httpProvider
app.config(function ($httpProvider) {
$httpProvider.defaults.headers.get = {
'Cache-Control': 'no-cache'
};
});
我不推荐这个。但它确实有效。