在Angular 2中,如何清除模板缓存? Angular 1有很多答案,但没有2。
我遇到的问题是,当我更改任何组件上的templateUrl引用的html页面的内容时,html页面不会在浏览器中更改,直到我手动导航到浏览器中的templateUrl并重新加载。我知道您可以在开发过程中禁用浏览器缓存来解决这个问题,但是我担心的是,当我用Angular 2更新网站时,用户可以看到一个过时的html页面,如果它们在浏览器中缓存。
这是一个连接到堆栈溢出问题的角度1
AngularJS disable partial caching on dev machine
以下是一个代码段,当我的内容更改时,我有app.html更新的问题。
@Component({ selector: 'photogallery-app',templateUrl: './app/app.html',directives: [ROUTER_DIRECTIVES,CORE_DIRECTIVES] })
首先导入TemplateCompiler。
import { TemplateCompiler } from 'angular2/src/compiler/template_compiler';
接下来在你的构造函数中注入TemplateCompiler。
constructor(private _templateCompiler: TemplateCompiler)
最后使用它来清除缓存。注意这将清除所有模板。
this._templateCompiler.clearCache();
更新:角度2 Beta 17
首先导入RuntimeCompiler。
import { RuntimeCompiler} from 'angular2/src/compiler/runtime_compiler';
接下来在构造函数中注入RuntimeCompiler。
constructor(private _runtimeCompiler: RuntimeCompiler)
最后使用它来清除缓存。注意这将清除所有模板。
this._runtimeCompiler.clearCache();
更新:角2 RC 1
首先导入RuntimeCompiler。
import { RuntimeCompiler} from '@angular/compiler/src/runtime_compiler';
接下来在构造函数中注入RuntimeCompiler。
constructor(private _runtimeCompiler: RuntimeCompiler)
最后使用它来清除缓存。注意这将清除所有模板。
this._runtimeCompiler.clearCache();
更新:角2 RC 4
首先导入RuntimeCompiler。
注意RC1的路径更改。当RC4使用时,调用.ClearCache()时,RC1列出的路径会抛出错误
import { RuntimeCompiler} from '@angular/compiler';
接下来在构造函数中注入RuntimeCompiler
constructor(private _runtimeCompiler: RuntimeCompiler)
最后使用它来清除缓存。注意这将清除所有模板。
this._runtimeCompiler.clearCache();
更新:Angular 2.0.0(RTM)
它不能完成我有一个应用程序,为登录的用户提供一个模板,另一个为未登录的模板设置。升级到2.0.0后,我无法完成相同的任务。虽然我试图找出重新构建应用程序的最佳方式,但是我已经诉诸于此:
location.reload();
这有效(但显然重新加载整个页面)。