2

我正在使用ng-bootstrap组件 ngtabset。当我嵌套 ng-templates 时,我在视图中看不到任何东西。有人可以解释为什么以及如何解决它吗?

以下工作并向我展示了两个选项卡,两个选项卡中的内容分别可见。

<ngb-tabset>
      <ngb-tab>
        <ng-template ngbTabTitle>Tab 1</ng-template>
        <ng-template ngbTabContent>
          This is tab 1 content
        </ng-template>
      </ngb-tab>
      <ngb-tab>
        <ng-template ngbTabTitle>Tab 2</ng-template>
        <ng-template ngbTabContent>
            This is tab 2 content
        </ng-template>
      </ngb-tab>
</ngb-tabset>

以下内容不起作用,因为我看不到 Tab 2 中的内容。

<ngb-tabset>
      <ngb-tab>
        <ng-template ngbTabTitle>Tab 1</ng-template>
        <ng-template ngbTabContent>
          This is tab 1 content
        </ng-template>
      </ngb-tab>
      <ngb-tab>
        <ng-template ngbTabTitle>Tab 2</ng-template>
        <ng-template ngbTabContent>
            <ng-template>This is tab 2 content</ng-template>
        </ng-template>
      </ngb-tab>
</ngb-tabset>

为什么我需要这样做?我有一个接受 TemplateReference 的自定义组件,它需要显示在选项卡 2 的内容中。

4

1 回答 1

3

正如你所说,我有一个接受 TemplateReference 的自定义组件

这意味着您的组件类中有 TemplateRef 变量。因此,您应该使用 ng-container 并使用 ngTemplateOutlet 在此容器中投影您的模板,而不是使用 ng-template。

<ng-template ngbTabContent>
      <ng-container *ngTemplateOutlet="your_template_ref_variable"></ng-container>
</ng-template>
于 2017-11-29T15:10:34.987 回答