【发布时间】:2016-01-15 09:31:10
【问题描述】:
在 Angular 2 中,如何清除模板缓存? Angular 1 有很多答案,但 2 没有。
我遇到的问题是,当我在任何组件上更改 templateUrl 引用的 html 页面的内容时,浏览器中的 html 页面不会更改,直到我在浏览器中手动导航到 templateUrl并点击重新加载。我知道你可以在开发过程中禁用浏览器缓存来解决这个问题,但我担心的是,当我用 Angular 2 更新网站时,如果用户将过时的 html 页面缓存在浏览器中,他们会看到过时的 html 页面。
这里是 Angular 1 的堆栈溢出问题的链接 AngularJS disable partial caching on dev machine
下面是一个 sn-p,我在 app.html 更新其内容时遇到问题。
@Component({
selector: 'photogallery-app',
templateUrl: './app/app.html',
directives: [ROUTER_DIRECTIVES, CORE_DIRECTIVES]
})
【问题讨论】:
-
这可能有效,但我希望有一个全局方法来解决这个问题,而不是为我网站中的每个组件都这样做。
-
据我所知,您不必这样做,除非您特别说明应该通过实现 routerCanReuse 并返回 true 来重用它们,否则它们总是会被重建,对吗?
-
我现在遇到了这个问题,那就是没有实现 routerCanReuse 并返回 true。
-
在进一步阅读 routerCanReuse 以及我观察到的一些行为之后,我可以看到该组件被丢弃并重新使用,因为每次导航到页面时都会进行我的 ajax 调用,但是templateUrl 装饰器属性引用的 html 没有正确更新。
标签: angular