一直在使用别人封装的组件库,非常好用,真的非常了不起。但是看了代码感觉理解起来非常困难,都给我看睡着了,说了我的困境之后,同学们都建议我打包跑路。 这里开始做笔记,把所有的有关联的全部记下来,最后看能不能拼完整这个图。
modal组件的调用方法有以下几种
modal.open(template) // dom 类型或者 component类型
modal.openMsg(msg) // string
要实现这样的API,首先modal的真实dom不应该挂在具体的组件中,而是应该挂载在body节点下。于是单页面应用都需要在对首页的声明的时候,注册modal的container组件
// AppComponent
<modal-container></modal-container>
modalContainer内部组件实现应该是
<div class="container">
<ng-container #content></ng-container>
<div>
当modal.open接受template作为参数的时候,需要将template解析然后装载到#content位置。这里我们遇到了第一个问题,就是怎么把一个template给装载到当前模版中我们期望的位置。这里可以参考https://segmentfault.com/a/11... ,这一个写的非常好将template 与 component插入到某个节点(dom/component)的情况都写清楚了。
现在开始设计展示内容的API:
class Modal {
open(template){}
openComponent() {}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。