angular - 使用 ngTemplateOutlet 或其他方式在多个选项卡中重用 Angular ngb-tabs 的内容
问题描述
我正在使用 Angular ng-tabset 来呈现一些选项卡。我的 ngb-tab 看起来有点像:
<ngb-tab id="mytabs">
<ng-template ngbTabTitle>
<div data-locator="xxxe">yyy</div>
</ng-template>
<ng-template ngbTabContent>
...
...
...
</ng-template>
</ngb-tab>
效果很好。但是我在这个模板中还有几个其他选项卡,我希望在其中呈现相同的内容。因此,出于可重用性的目的,我试图将选项卡的内容分开移动,并在我希望呈现的每个选项卡中使用它的引用。我不知道该怎么做。我试着把它放在一个单独<ng-template>
的里面:
<ng-template #testing>
<ng-template ngbTabTitle>
<div data-locator="xxxe">yyy</div>
</ng-template>
<ng-template ngbTabContent>
...
...
...
</ng-template>
<ng-template
在我需要渲染的选项卡下,我尝试将其称为:
<ngb-tab id="mytabs">
<ng-container *ngTemplateOutlet="testing"></ng-container> // referring the #testing above
</ngb-tab>
OR:
<ngb-tab id="mytabs">
<ng-template *ngTemplateOutlet="testing"></ng-template>
</ngb-tab>
但是我的标签没有呈现。也许是错误的方法,或者我遗漏了一些东西。是否有可能实现我想要实现的目标?如果是,如何?
解决方案
我建议不要嵌套 ng-templates 并将它们与不同的 id 一起使用,然后将它们分别插入到 ngb-tab 下,如下所示:
<ng-template ngbTabTitle #testTitle>
<div data-locator="xxxe">yyy</div>
</ng-template>
<ng-template ngbTabContent #testContent>
...
...
...
</ng-template>
<ngb-tab id="mytabs">
<ng-container *ngTemplateOutlet="testTitle"></ng-container>
<ng-container *ngTemplateOutlet="testContent"></ng-container>
</ngb-tab>
推荐阅读
- flexbox - Material-UI Grid 如何将所有单元格应用于相同的空间,即使它们在另一个容器内
- c - GCC将寄存器args放在堆栈上,在局部变量下方有一个间隙?
- reactjs - 使用 React Hooks 时将 Redux 状态设置为默认状态
- c - 在 C 中将时间戳存储为二进制分数
- java - 从数据库中恢复数据的最佳方法是什么?
- c++ - 如何设置opengl对象的大小?
- javascript - Laravel 错误:jQuery.easing 不是函数
- json - 在多个系列 Highcharts 图表中切换第二个窗格数据
- android - 使用 HDMI CEC android 打开/关闭电视
- java - Paths.get 与 Path.of