angular - 在 Angular Slickgrid 示例 24 中使用 Angular slickgrid 和 ngfor 动态创建选项卡
问题描述
我需要一个带有类似于Angular Slickgrid 中的示例 24的选项卡的页面,其中每个选项卡的内容都是一个网格。选项卡的数量可能会有所不同,因此我需要使其动态化。
因此,我以该示例为基础来了解该做什么。首先我修改了ngOnInit:
ngOnInit(): void {
this.defineGrid1();
this.defineGrid2();
// mock some data (different in each dataset)
this.dataset1 = this.mockData();
// load data with Http-Client
this.http.get((URL_CUSTOMERS)).subscribe((data: any[]) => this.dataset2 = data);
this.gridOptions3 = this.gridOptions1;
this.columnDefinitions3 = this.columnDefinitions1;
this.dataset3 = this.mockData();
this.paras = [
{tab:"tab1x", grName:"grid1", cD: this.columnDefinitions1, gO: this.gridOptions1, dS: this.dataset1},
{tab:"tab2x", grName:"grid2", cD: this.columnDefinitions2, gO: this.gridOptions2, dS: this.dataset2},
{tab:"tab3x", grName:"grid3", cD: this.columnDefinitions3, gO: this.gridOptions3, dS: this.dataset3}
];
}
在模板中,我使用了对象*ngFor
:
<tabset>
<div *ngFor="let obj of paras; let i = index">
<tab [heading]="obj.grName" [id]="obj.tab">
<h4>Grid {{ i + 1 }} - Load Local Data</h4>
<angular-slickgrid
[gridId]="obj.grName"
[columnDefinitions]="obj.cD"
[gridOptions]="obj.gO"
[dataset]="obj.dS"
>
</angular-slickgrid>
</tab>
</div>
</tabset>
我没有得到 3 个选项卡,每个选项卡包含一个网格,而是得到 3 个具有相同内容的选项卡,每个选项卡包含所有 3 个网格。
错误在哪里?谢谢
解决方案
正如 Raphael 所提议的,我将 tabset 替换为 Nav 指令。
按照说明安装 ng-bootstrap 后 https://ng-bootstrap.github.io/#/getting-started#installation
模板中以下基于 ng-bootstrap-example 的代码完成了这项工作
<ul ngbNav #nav="ngbNav" class="nav-tabs">
<ng-container ngbNavItem *ngFor="let obj of paras; let i = index">
<a ngbNavLink>{{obj.grName}}</a>
<ng-template ngbNavContent>
<angular-slickgrid [gridId]="obj.grName"
[columnDefinitions]="obj.cD"
[gridOptions]="obj.gO"
[dataset]="obj.dS">
</angular-slickgrid>
{{obj.grName}}
</ng-template>
</ng-container>
</ul>
<div [ngbNavOutlet]="nav" class="mt-2"></div>
感谢 Raphael 和 Ghislain 的评论!
推荐阅读
- python-3.x - 使用 Jedi 的 Spyder 4 代码自动完成在编辑器中(仍然)很慢
- python - scipy 和 excel 结果在 T 分布中不同
- java - 对新的对应对象使用 Java 多态性(StringBuffer 或 StringBuilder)
- javascript - 在 MOBILE 上将其他人推开的可拖动元素
- c++ - 静态大小的 Rcpp 空列表会比 list.push_back() 更有效吗?
- angular - 角度 8 秒表
- python - 烧瓶测试路线'/'
- unreal-engine4 - 如何从游戏视图访问小部件的蓝图
- r - 如何计算> 1000列的数据集中每列有多少条目?
- sapui5 - SAPUI5. 我的收件箱。附件异步更新