在JavaScript的旧时代,我们经常将DOM元素放在我们想要某些功能的ID或类中,然后使用全局JavaScript代码将这些功能动态地注入到每个元素中。
这允许在DOM中需要注入功能,无论脚本调用它的位置如何。
当然,我们已经摆脱了这种范式,特别是随着Angular 2/4的出现。这就是我遇到一个小问题的地方。 我需要一种方法来渲染Angular 2/4组件,而不是将选择器标签插入DOM的位置。
具体来说,我可以绝对定位弹出窗口而不会影响定位的任何其他相对定位的父元素。不幸的是,我没有权力确保没有父元素具有相对定位,或者我只是采取这种方法。遗憾的是,没有CSS方法可以忽略相对定位的父元素。
有没有办法让Angular为DOM中特定位置的给定元素注入模板?在这个实例中我要将其直接加载到内容部分无论选择标记在DOM中的哪个位置,该页面或直接在结束体标记之前。
我查看了 DynamicComponentLoader ,但这似乎已被弃用。它看起来很有希望,但我找不到替代方案。有人能指出我这样做的方向吗?还有一个吗?
答案 0 :(得分:0)
最简单的方法是在主应用程序组件中包含一个组件,并让它显示或隐藏可以传入的输入,代码示例:
https://stackblitz.com/edit/angular-dcst8j
根据您的需要,您可以使这更加复杂。最终,如果你最终得到一个更大的应用程序,最好考虑一个状态管理策略来处理如何处理复杂的状态管理:https://bertrandg.github.io/angular2-application-state-management-strategy/我个人已选择使用ngrx [https://github.com/ngrx/platform]。我看到很多行业正在面向Redux和redux式舞台管理。有很多选择。