【发布时间】:2020-06-30 02:25:51
【问题描述】:
我认为我遇到的问题非常简单。 Bootstrap 需要 HTML 才能使其网格系统正常工作。这是一个非常简化的通用示例:
<div class="row">
<div class="col">
Nicely-formatted!
</div>
</div>
问题是,如果我将内部部分拉出到一个单独的 Angular 组件中,它会添加一个包装容器,该容器会抛弃 Bootstrap 的样式并完全打乱布局:
源 HTML:
<div class="row">
<app-my-component></app-my-component>
</div>
我的组件 HTML:
<div class="col">
Nicely-formatted!
</div>
注意:我不能将col div 移到组件外,也不能将row 移到组件内。这些行属于父组件(并且差异很大/等等),而列属于子组件实例。
呈现时生成的 HTML(不幸的是,它现在是谎言,因为它不再是很好的格式):
<div class="row">
<app-my-component>
<div class="col">
Nicely-formatted!
</div>
</app-my-component>
</div>
有没有办法指示 Angular不 呈现 <app-my-component> 标签?我宁愿它直接内联 HTML,这样可以解决我的问题。
This similar question received no love, after most comments/answers addressed the wrong thing。帮助解决我们的集体问题! :) (如果不使用 wrapper 标签渲染 Angular 组件是不可能的,我愿意接受建议!)
我宁愿不插入 hacky 样式来违背 Bootstrap 的传统样式,或者删除子组件(我重复使用它们并在 HTML 中重复它们的代码会很痛苦)。
感谢有关如何重新排列 HTML 的建议,但这是我经常遇到的一个更大问题的症状:通常能够关闭组件 HTML 的呈现。
【问题讨论】:
-
您是否尝试将行类添加到 mycomponent?
-
@JohnPeters 它不属于我的组件。我将进行编辑以澄清,出于我的目的,将
row移动到子组件内或将col移动到子组件外是没有意义的。不过感谢您的回复! -
自定义组件 css 中的另一条注释,您可以使用 :root。样式的伪选择器
标签: html angular typescript angular-components