【问题标题】:ng-bootstrap modal opens component, but places html-selectorng-bootstrap 模态打开组件,但放置 html-selector
【发布时间】:2023-03-12 03:42:02
【问题描述】:

我在 Angular 4 应用程序中使用 ng-bootstrap。使用 ngbModal 我打开一个模态。模态内容被放置在一个单独的组件中:selector: 'my-modal-component'

组件一(在component.ts中点击打开modal):

this.spModalService.open(MyModalComponent, 'sm');

组件二(模态框的内容):

<div class="modal-header"> (..) </div>
<div class="modal-body"> (..) </div>
<div class="modal-footer"> (..) </div>

到目前为止一切顺利。类.modal-content 获取类d-flexflex-column 以确保.modal-header、-body 和-footer 知道该做什么(垂直划分高度)。

但是:因为我给 ngbModal 一个组件作为模态的内容,所以它在 HTML 中放置了一个选择器标签:

<div class="modal-content">
    <my-modal-component>
        <div class="modal-header"> (..) </div>
        <div class="modal-body"> (..) </div>
        <div class="modal-footer"> (..) </div>
    </my-modal-component>
</div>

由于这个 HTML 选择器,我的 flexbox 样式不再起作用,因为 .modal-header、-body 和 -footer 不再是 .modal-content 类的直接子级。

有谁知道选择器是否可以忽略?

编辑:这是我想要的结果:

<div class="modal-content">
    <div class="modal-header"> (...) </div>
    <div class="modal-body"> (...) </div>
    <div class="modal-footer"> (...) </div>
</div>

我一直在疯狂地搜索和阅读,但没有发现任何人有同样的问题和疑问。

【问题讨论】:

    标签: angular flexbox ng-bootstrap ng-modal


    【解决方案1】:

    尝试以不同的方式加载您的 scss 页面,例如: 导入'style-loader!./your-scss-file-name.scss';

    【讨论】:

    • 当您以常规方式导入 scss 文件时,它会在选择器的末尾添加一个生成的数字,这样它就不会影响其他组件。
    • 我希望 Angular 忽略组件选择器而不是在 DOM 中生成它:&lt;div class="modal-content"&gt;&lt;div class="modal-header"&gt; (...) &lt;/div&gt;&lt;div class="modal-body"&gt; (...) &lt;/div&gt;&lt;div class="modal-footer"&gt; (...) &lt;/div&gt;&lt;/div&gt;
    猜你喜欢
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 1970-01-01
    • 2018-03-09
    相关资源
    最近更新 更多