gpt4 book ai didi

javascript - 强制重新加载指令模板

转载 作者:IT王子 更新时间:2023-10-29 03:17:09 27 4
gpt4 key购买 nike

我正在使用多个指令开发 AngularJS 应用程序。该指令的模板存储在一个单独的 html 文件中。编辑这些模板时,我的浏览器在重新加载后没有检测到任何更改,并且始终使用缓存版本。检测到源代码的任何其他更改并导致重新加载。

我猜问题出在 $templateCache 上,AngularJS 在加载模板时似乎使用了它。

我在 AngularJS 1.0.2 的源代码中找到的是来自第 4317 行的以下内容,它是 compileTemplateUrl() 的一部分:

$http.get(origAsyncDirective.templateUrl, {cache: $templateCache})

我想知道是否还有其他人遇到过此类问题,是否有办法告诉 AngularJS 何时缓存何时不缓存。

最佳答案

我知道这是一个老问题,但这里有一个更简单的修复方法,虽然有点 hack,但对我有用,而且不需要你对 $templateCache 做任何事情。

每当我遇到这个问题(我在指令模板中看到它,还有静态 JSON 文件),我都会在加载的 URL 末尾添加一个查询参数,如下所示:

...
templateUrl: "partials/template.html?1",
...

每当我对模板进行更改并且它没有重新加载时,我都会在最后增加该数字。由于浏览器不知道这是否对服务器有特殊意义,因此它应该尝试重新加载已更改的 URL,无论它是否被缓存。这也将确保文件在生产环境中重新加载。

关于javascript - 强制重新加载指令模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13450926/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com