Angular 2/4 - 从 DOM 中删除组件,但保留在内存中

标签 angular dom components hidden

我正在尝试创建同一组件的多个实例,并使它们成为某种“可制表符”——基本上每个组件实例中一次应该只显示一个。问题是我知道 [hidden] 指令,但它对我不起作用,因为我在 HTML 中使用大量 ID 标记构建了这个巨大的组件,它破坏了除一个组件之外的所有组件的 CSS当它们同时存在于 DOM 中时(CSS 规则,你知道吗?)。

我的问题是是否有一种方法可以从 DOM 中删除组件,但仍将它们保留在内存中(用于数据保留)以便稍后重新插入?谢谢!

更新:

我能够利用抽象的 RouteReuseStrategy 类提出解决方案。信息取自此处:

https://www.softwarearchitekt.at/post/2016/12/02/sticky-routes-in-angular-2-3-with-routereusestrategy.aspx

最佳答案

您可以执行类似 <router-outlet> 的操作如果您使用实际重用组件实例的重用策略,则会执行此操作。 当你动态创建一个组件时

source

 this.activated = this.location.createComponent(factory, this.location.length, inj, []);

source

this.location.detach();

和返回的 r然后传递给 attach(ref, ...)

source

this.location.insert(ref.hostView);

关于Angular 2/4 - 从 DOM 中删除组件,但保留在内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43874291/

相关文章:

javascript - 是否可以使用自定义组件或任何其他方式自定义 ng2-smart-table 的列标题?

javascript - HTML 表中删除的行保留在 ReactDOM 中

javascript - 使用 jQuery 添加函数到 DOM 元素集?

C# 可插拔架构,论文考虑

reactjs - React.CloneElement 返回一个对象而不是函数

javascript - Angular 2 需要表单组中的两项之一

javascript - 在点击事件中通过语句调用函数

javascript - 在 React.js 中的渲染函数之外使用循环

angular - ui-grid angular js - 单元格卡在编辑模式

javascript - 使用 Ractive.extend() 时如何引用 DOM 元素?