【发布时间】:2019-02-16 05:17:34
【问题描述】:
我正在构建一个自定义模态组件(我想要一些简单的东西),但我发现这种行为我无法理解。
这是我的模态组件 HTML
<div class="modal-overlay">
<div class="modal-main">
<ng-content selector="header"></ng-content>
<ng-content></ng-content>
<ng-content selector="footer"></ng-content>
</div>
</div>
如果我使用这个组件模板一切正常,我以后可以像这样使用该组件,并且会按预期工作。
<app-modal>
<header><h1>Hello modal!</h1></header>
<div class="modal-content">This is a modal that will be printed nicely</div>
<footer><button>Close</button></footer>
</app-modal>
当我尝试将ng-content 之一封装在一个div 中时,问题就来了。
如果我这样做了
<div class="modal-overlay">
<div class="modal-main">
<div class="is-flex">
<ng-content selector="header"></ng-content>
<i class="fas fa-times"></i>
</div>
<ng-content></ng-content>
<ng-content selector="footer"></ng-content>
</div>
</div>
生成的 HTML 将如下所示。
<div _ngcontent-c1="" class="modal-overlay">
<div _ngcontent-c1="" class="modal-main">
<div _ngcontent-c1="" class="is-flex">
<i class="fas fa-times"></i>
</div>
<header><h1>Hello modal!</h1></header>
<div class="modal-content">This is a modal that will be printed nicely</div>
<footer><button>Close</button></footer>
</div>
</div>
知道为什么header 没有在.is-flex div 内结束吗?
谢谢!
【问题讨论】:
-
你使用的是什么版本的角度?
标签: angular angular-components ng-content