gpt4 book ai didi

javascript - 嵌套 ng-bootstrap 选项卡(Angular 2)

转载 作者:数据小太阳 更新时间:2023-10-29 03:49:43 30 4
gpt4 key购买 nike

我正在尝试嵌套 ng-bootstrap 选项卡小部件,但嵌套选项卡的内容未正确显示。当我点击嵌套选项卡时,内容本身就会消失。

Minimal demo

我做错了什么?

这是 View 代码:

            <ngb-tabset>
<ngb-tab *ngFor="let tab of tabs">
<ng-template ngbTabTitle>
{{ tab.title }}
</ng-template>
<ng-template ngbTabContent>
{{ tab.content }}

<ngb-tabset>
<ngb-tab>
<ng-template ngbTabTitle>
1
</ng-template>
<ng-template ngbTabContent>
1
</ng-template>
</ngb-tab>
<ngb-tab>
<ng-template ngbTabTitle>
2
</ng-template>
<ng-template ngbTabContent>
2
</ng-template>
</ngb-tab>
<ngb-tab>
<ng-template ngbTabTitle>
3
</ng-template>
<ng-template ngbTabContent>
3
</ng-template>
</ngb-tab>
</ngb-tabset>

</ng-template>
</ngb-tab>
</ngb-tabset>

最佳答案

更新

Angular 4.3.6 包含针对此问题的修复。

https://github.com/ng-bootstrap/ng-bootstrap/issues/1433#issuecomment-325104017

以前的版本

这是一个错误。

可能的解决方法可能是使用额外的模板,例如:

<ngb-tabset>
<ngb-tab *ngFor="let tab of tabs">
<ng-template ngbTabTitle>
{{ tab.title }}
</ng-template>
<ng-template ngbTabContent>
{{ tab.content }}
<ng-container *ngTemplateOutlet="innerTabset"></ng-container>
</ng-template>
</ngb-tab>
</ngb-tabset>


<ng-template #innerTabset>
<ngb-tabset>
<ngb-tab>
<ng-template ngbTabTitle>
1
</ng-template>
<ng-template ngbTabContent>
1
</ng-template>
</ngb-tab>
<ngb-tab>
<ng-template ngbTabTitle>
2
</ng-template>
<ng-template ngbTabContent>
2
</ng-template>
</ngb-tab>
<ngb-tab>
<ng-template ngbTabTitle>
3
</ng-template>
<ng-template ngbTabContent>
3
</ng-template>
</ngb-tab>
</ngb-tabset>
</ng-template>

Plunker Example

您可以生成任意数量的嵌套选项卡,例如:

<ng-container *ngTemplateOutlet="innerTabset; context: { $implicit: tabs }"></ng-container>

<ng-template #innerTabset let-tabs>
<ngb-tabset>
<ngb-tab *ngFor="let tab of tabs">
<ng-template ngbTabTitle>
{{ tab.title }}
</ng-template>
<ng-template ngbTabContent>
{{ tab.content }}
<ng-template [ngIf]="tab.children">
<ng-container *ngTemplateOutlet="innerTabset; context: { $implicit: tab.children }"></ng-container>
</ng-template>
</ng-template>
</ngb-tab>
</ngb-tabset>
</ng-template>

Plunker Example

之所以有效,是因为每个嵌入式模板都有自己的范围,并且 Angular 不会混合查询结果

关于javascript - 嵌套 ng-bootstrap 选项卡(Angular 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43718907/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com