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

标签 javascript angularjs

我正在使用多个指令开发 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/

相关文章:

php 中的 JavaScript 函数可显示更多点击信息(数据库查询)

javascript - 如何检查追加元素是否已经存在?

javascript - Reactjs中fetch的Ajax请求状态码识别

javascript - Angular + Requirejs - 如何返回多个模块?

javascript - AngularJS:从指令中的 Controller 执行函数

javascript - 如何从 MYSQL 获取单个值并将其保存到 JavaScript 变量中?

javascript - MongoDB MapReduce,仅当 count > 1 时返回

javascript - ASP。 NET Controller 接收空数组

javascript - "Ghost"ng点击功能

angularjs - 如何在MVC中创建文件并向其中插入json数据