美文网首页
Angular4 动态Tab页

Angular4 动态Tab页

作者: 陌北有棵树 | 来源:发表于2017-10-17 22:08 被阅读0次

    项目要求在既有的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

    相关文章

      网友评论

          本文标题:Angular4 动态Tab页

          本文链接:https://www.haomeiwen.com/subject/utejuxtx.html