gpt4 book ai didi

javascript - Angular 脚本在部分 View 内加载 - 缓存问题

转载 作者:行者123 更新时间:2023-12-03 09:31:33 26 4
gpt4 key购买 nike

我在 Angular 应用程序的部分 View 中加载 JavaScript 时遇到问题。

这是我的设置:ui-router设置ui-view请求 /profile<app-home-profile></app-home-profile> .

appHomeProfile指令设置如下:

app.directive('appHomeProfile', function() {
return {
restrict: 'E',
templateUrl: 'templates/user/profile.html',
controller: ...,
controllerAs: 'profileCtrl'
}
});

现在,在 profile.html 内文件中我包含标准 HTML 以及其底部的一些 JavaScript 依赖项:

<script type="text/javascript" src="/javascripts/myScript1.js"></script>
<script type="text/javascript" src="/javascripts/myScript2.js"></script>

问题是服务器日志显示 Angular 正在将时间戳添加到请求中,因此不允许缓存任何脚本!在 head 中以“通常”方式加载的脚本不会发生这种情况。文档的内容。

GET /javascripts/myScript1.js?_=1437207405398 200 2.356 ms - 22524
GET /javascripts/myScript2.js?_=1437207405399 200 1.873 ms - 29695

任何有关如何解决此问题的帮助都将不胜感激!

谢谢,尼克

最佳答案

与 jQuery 不同,Angular 不支持 <script>在请求的模板中,因为 jqLit​​e 简化了实现。可以修复like that .

它在您的示例中起作用的原因是因为您在应用程序中使用了 jQuery,因此它管理 DOM 而不是 jqLit​​e。添加 AJAX 请求中的时间戳以禁用浏览器缓存,这是 jQuery 的默认行为。可以通过以下方式禁用它:

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

关于javascript - Angular 脚本在部分 View 内加载 - 缓存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31489317/

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