angular - PrimeNG - TreeNodes [] 已填充但为空 TreeTable(Angular 6)
问题描述
我会尽量让这件事变得简单。
目标:用JSON 项目填充的树表:
项目.json
[
{
"id":1,
"name": "item1",
"description":"ServiceItem1",
},
{
"id":2,
"name":"item2",
"description":"ServiceItem2",
},
{
"id":3,
"name":"item3",
"description":"ServiceItem3",
}
]
项目.ts
export class Item {
public id: number;
public name: string;
public description: string;
}
树节点.ts
export interface TreeNode {
data?: any;
children?: TreeNode[];
leaf?: boolean;
expanded?: boolean;
}
项目服务.ts
export class BasketItemService {
getAllItems() {
return this.http.get('http://localhost:4203/assets/items.json');
}
}
item.component.ts
items: TreeNode[] = [];
ngOnInit() {
this.itemService.getAllItems()
.subscribe(
res => {
this.items = res.json();
},
err => {
console.log(err);
}
);
}
}
item.component.html
<p-treeTable [value]="items" >
<ng-template pTemplate="header">
<tr>
<th>Id</th>
<th>Name</th>
<th>Description</th>
</tr>
</ng-template>
<ng-template pTemplate="body" let-rowNode let-rowData="rowData">
<tr>
<td>
<p-treeTableToggler [rowNode]="rowNode"></p-treeTableToggler>
{{rowData.id}}
</td>
<td>{{rowData.name}}</td>
<td>{{rowData.description}}</td>
</tr>
</ng-template>
</p-treeTable>
我得到的是一个修正的填充项目 []列表,没有错误。不过桌子是空的。没有导入或版本不匹配的问题,因为我从他们的站点实现了示例并且它运行良好。
唯一的区别与 JSON 文件有关,在这种情况下,每个对象都以某种方式标记有数据 或我们所在的节点。(此外,在 ngOnInit 方法中,它们确实有
this.items = res.json().data;
这是必须的吗?我的对象是否需要具有严格命名为“数据”的属性?我是否应该根据我的 JSON 修改我的 TreeNode 接口,或者那是必须填写的模式?我错过了什么?
解决方案
Json 数据不正确。参见下面声明的接口,将 josn 数据绑定到 TreeNodeModel。TreeTable 需要带有子项的数据。有关更多信息,请参阅 Primeng。
export class Item {
public id: number;
public name: string;
public description: string;
}
export class TreeNodeModel{
expanded: boolean,
data: Item,
children: Array<TreeNodeModel>
}
推荐阅读
- firebase - 如何将 Firebase Auth 与自定义 rest api 一起使用?
- python - numpy:对操作结果执行“任何”或“全部”的有效方法
- spring-security - 结合 Spring security AUTHORIZATION 承载和 CXF
- wordpress - 如何在 wordpress 中为主页创建 Feed 部分
- c++ - VisualStudio:使用 Suse Enterprise Server 12 SP5 时未下载远程库标头
- javascript - 在没有 jQuery 的情况下单击时的滑动切换兄弟
- python - openpyxl:使用 for 循环向单元格添加值
- python - 如何在没有用户使用电报机器人上传的情况下发送 gif 或视频
- javascript - 有没有办法从 JavaScript 模拟网络条件?
- python - Pandas Groupby 在日期时间列上滚动多列的总和