角色脚本在局部视图中加载 - 缓存问题

时间:2015-07-18 08:33:36

标签: javascript angularjs caching mean-stack

我在Angular应用程序的部分视图中加载JavaScripts时遇到问题。

这是我的设置:ui-routerui-view的{​​{1}}设置为/profile

<app-home-profile></app-home-profile>指令设置如下:

appHomeProfile

现在,在app.directive('appHomeProfile', function() { return { restrict: 'E', templateUrl: 'templates/user/profile.html', controller: ..., controllerAs: 'profileCtrl' } }); 文件中我包含标准HTML,并在其底部包含一些JavaScript依赖项:

profile.html

问题是服务器日志显示Angular正在为请求添加时间戳,因此不允许缓存任何脚本! 对于在文档的<script type="text/javascript" src="/javascripts/myScript1.js"></script> <script type="text/javascript" src="/javascripts/myScript2.js"></script> 中以“常规”方式加载的脚本,不会发生这种情况。

head

有关如何解决这个问题的任何帮助表示赞赏!

谢谢, 尼克

1 个答案:

答案 0 :(得分:1)

与jQuery相反,由于jqLit​​e简化实现,Angular在请求的模板中不支持<script>。它可以修复like that

它在你的例子中起作用的原因是因为你在你的应用程序中使用jQuery,所以它管理DOM而不是jqLit​​e。添加AJAX请求中的时间戳以禁用浏览器缓存,这是jQuery的默认行为。可以使用

禁用它
app.config(function () {
  angular.element.ajaxSetup && angular.element.ajaxSetup({ cache: true });
});