javascript – 强制重新加载指令的模板

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

我想问题是一些$ templateCache似乎被AngularJS在加载模板时使用。

我在AngularJS 1.0.2的源代码中发现的是从第4317行开始的以下内容,它是compileTemplateUrl()的一部分:

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

我想知道是否有其他人有这样的问题,如果有一种方法来告诉AngularJS什么时候缓存,而不是。

模板缓存存储在您的浏览器中,因为这是一个javascript应用程序。你实际上可以手动提供$缓存或停止浏览器缓存模板(因为它看起来生产,缓存不会是一个问题),使用开发工具。

对于强制进给缓存:

function Main($cache) {
    $cache.data['first.html'] = {value: 'First template'};
    $cache.data['second.html'] = {value: '<b>Second</b> template'};

}

Main.$inject = ['$xhr.cache'];​

看到它在这个fiddle工作。

要阻止浏览器缓存模板(从Google Groups post引用,关于这个问题,完全):

My team and I have ran into this same issue. Our solution for
development while using Chrome was to open Developer Tools, and select
the gear in the bottom right hand corner. Then select Network –
Disable cache.

This fixed all our partial/template caching issues.

http://stackoverflow.com/questions/13450926/force-reload-of-a-directives-template

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:javascript – 强制重新加载指令的模板