我一直在 Angular2.beta.0 上构建一个应用程序,我已经实现了路由器和组件。
我在其中一个组件模板上有一个覆盖和一个简单的基于模式的菜单,单击菜单中的链接将更改路线并加载另一个相关组件。
如果通过使用浏览器的后退按钮访问具有模态的前一个组件,则模态和叠加层保持其打开状态。
这些模式驻留在组件模板本身中,最初设置为不显示,并在单击按钮时使用 jQuery 显示/隐藏。
这似乎不是模板缓存问题,因为如果正在缓存模板,模态框将被隐藏,而是缓存带有模板的 DOM 状态。
我一直在 Angular2.beta.0 上构建一个应用程序,我已经实现了路由器和组件。
我在其中一个组件模板上有一个覆盖和一个简单的基于模式的菜单,单击菜单中的链接将更改路线并加载另一个相关组件。
如果通过使用浏览器的后退按钮访问具有模态的前一个组件,则模态和叠加层保持其打开状态。
这些模式驻留在组件模板本身中,最初设置为不显示,并在单击按钮时使用 jQuery 显示/隐藏。
这似乎不是模板缓存问题,因为如果正在缓存模板,模态框将被隐藏,而是缓存带有模板的 DOM 状态。
正如@codin 所建议的那样
默认情况下,Angular2 缓存 DOM 并重用它(查看@tbosch 的评论)。为了防止这种行为,您可以使用APP_VIEW_POOL_CAPACITY
并将其0
作为值。
bootstrap(MyApp, provide(APP_VIEW_POOL_CAPACITY, {useValue : 0}));