Angular 4:如何使用ng-boostrap api制作动态标签

时间:2017-07-17 21:05:55

标签: angular tabs ng-bootstrap

我正在尝试开发一个标签视图,我可以在运行时动态加载标签。我最近开始使用ng-boostrap中的ngb-tabset,发现它非常有用,除非我似乎无法动态创建标签。

Long2know几乎完全创造了我尝试实施的here. 目前的挑战是提供此示例的数据。理想情况下,如果可以创建这样的东西

.state('product', {
     url: '/product/:productName',
     controller: 'ProductController',
     title: "Product",
     templateUrl: 'app/components/product/product.html',
     controllerAs: 'vm'
  })

其中"组件"将是一系列不同的组件。因此,createTab将是一个指令,它使用FactoryResolver和ViewContainerRef来动态创建组件。

如果我尝试这样的话,我不会收到错误,但标签视图根本不显示。在查看ngb-tabset的源代码之后,我意识到它使用@ContentChildren来获取与使用ViewContainerRef动态创建组件无关的选项卡内容。

我只是想知道是否有其他方法可能类似于实现这一目标?我知道有可能用路由器来实现这一点,但是我已经花了很多时间在这种方法上,所以它会更受欢迎,但我对任何事情都持开放态度。

1 个答案:

答案 0 :(得分:1)

尝试

<ngb-tabset [destroyOnHide]="false">
...
</ngb-tabset>

这将防止元素被破坏