Xan*_*iff 15 caching angularjs
我注意到,我会不时地对AngularJS应用程序中的一个模板进行更改,并且在运行时,更改将不可见.相反,我将不得不刷新应用程序,如果失败,请转到模板本身的路径并刷新它以查看此更改.
防止缓存这些模板的最佳方法是什么?理想情况下,我希望在当前使用Angular应用程序时缓存它们,但是下次加载页面时,它们会检索最新和最好的模板,而无需手动刷新.
我正在使用ui-router,如果这在这里有所不同.谢谢!
Ama*_*jan 16
您可以使用装饰器并更新UI路由器的$ templateFactory服务,以将后缀附加到templateUrl
function configureTemplateFactory($provide) {
// Set a suffix outside the decorator function
var cacheBuster = Date.now().toString();
function templateFactoryDecorator($delegate) {
var fromUrl = angular.bind($delegate, $delegate.fromUrl);
$delegate.fromUrl = function (url, params) {
if (url !== null && angular.isDefined(url) && angular.isString(url)) {
url += (url.indexOf("?") === -1 ? "?" : "&");
url += "v=" + cacheBuster;
}
return fromUrl(url, params);
};
return $delegate;
}
$provide.decorator('$templateFactory', ['$delegate', templateFactoryDecorator]);
}
app.config(['$provide', configureTemplateFactory]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
16722 次 |
| 最近记录: |