一直在使用别人封装的组件库,非常好用,真的非常了不起。但是看了代码感觉理解起来非常困难,都给我看睡着了,说了我的困境之后,同学们都建议我打包跑路。 这里开始做笔记,把所有的有关联的全部记下来,最后看能不能拼完整这个图。
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() {}
    
}

黄小波波
31 声望5 粉丝