我在Angular应用程序的部分视图中加载JavaScripts时遇到问题。
这是我的设置:ui-router
将ui-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
有关如何解决这个问题的任何帮助表示赞赏!
谢谢, 尼克
答案 0 :(得分:1)
与jQuery相反,由于jqLite简化实现,Angular在请求的模板中不支持<script>
。它可以修复like that。
它在你的例子中起作用的原因是因为你在你的应用程序中使用jQuery,所以它管理DOM而不是jqLite。添加AJAX请求中的时间戳以禁用浏览器缓存,这是jQuery的默认行为。可以使用
禁用它app.config(function () {
angular.element.ajaxSetup && angular.element.ajaxSetup({ cache: true });
});