Angular4 动态Tab页

项目要求在既有的clever框架上实现动态的tab页加载,在tab页切换时能保持每个tab页的状态,也就是做了哪些修改神马的。

然而原有clever框架上的Tab页是静态的,最开始尝试了用 *ngIf控制tab的是否加载,但出现的问题是无论点击的顺序是什么,这些tab页全都保持了一致的顺序,很显然被毙掉了。

继续在网上找方法,因为现在用的这套clever是基于Bootstrap的,于是去看Bootstrap的文档,文档中给的动态加载Tab要是这样的:

Bootstrap中的例子

这样的实现方式是说:每当你增加或者删除一个tab选项页,会执行一次*ngFor,重新加载一次所有的页,这就说明并不会保持状态,而且每点一个就全部加载一次所有数据,显然又会被毙掉了。

经历了一次次的折磨,在师哥的帮助下,写出了一种实现方式。最终的效果是这样的:

效果图

首先,改变了原来clever的路由组织结构,原来是appRouting下引各个一级Module,在各个一级模块的Routing下引各个二级Component,现在的做法是,在中间加了一个空组件,这里是filling组件,把所有路由引到这个空组件上去,这个空组件通过动态加载组件的方式加载每次点击tab页需要加载的组件。

filling.component.html

这里的tabArray和activeIndex数组都是filling组件和full-layout组件共同维护的,full-layout组件是嵌套在clever最外层的框架。full-layout组件如下:


full-layout.component.ts
full-layout.component.html

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 136,086评论 17 580
  • 快吃呀!我:刚喝了一杯饮料立马不饿了。 蓝盆友:刚才饿的一头猪都能吃下的人,怎么能不吃啦? 我:我我~我刚喝了一条...
    shiner高阅读 21评论 0 0
  • 暖暖的阳光明媚轻轻的云儿唯美心儿醉心儿醉可怜一湖水 春天的芳香花蕊夏天的繁星点缀蝶儿飞蝶儿飞飞去不复回 心儿醉心儿...
    海洋君jocean阅读 30评论 0 0
  • 单车是近几年的叫法,我们小时候都叫它洋车,后来到城里上学,为了体面不得不改掉乡音,也跟着别人叫起自行车,至于单车的...
    荣生实验室阅读 110评论 1 5
  • 最近毕福剑一事算是闹的沸沸扬扬,CCTV-1每周六晚黄金时间播出的星光大道也因此被停播,算是舆论界发生的一件大事了...
    大地_行者阅读 811评论 0 3