im试图从本地主机获取数据,但是当涉及到不同的结构时,我不明白如何在数据用户上获取这些数据。有帮助吗?
这就是我试图接近但失败并获得的方式错误错误:找不到ID为“ _id”的列。
Json文件
{
"message": "Handling GET requests to User",
"dataUser": [
{
"CountLike": 15,
"CountShare": 26,
"id": "5edb6d50d77987442cf1d7ed",
"Name": "Andy",
"Point": 40
}
]
}
这是我的servise.ts文件
getUsers() {
return this.http.get('http://localhost:3000/surveys');
}
这是我的html文件
<mat-table [dataSource]="dataSource" class="mat-elevation-z8">
<ng-container matColumnDef="dataUser _id">
<th mat-header-cell *matHeaderCellDef>ID</th>
<td mat-cell *matCellDef="let element">
{{ element.dataUser._id }}
</td>
</ng-container>
<!-- Name Column -->
<ng-container matColumnDef="dataUser CountLike">
<th mat-header-cell *matHeaderCellDef>Like</th>
<td mat-cell *matCellDef="let element">
{{ element.dataUser.CountLike }}
</td>
</ng-container>
<!-- Weight Column -->
<ng-container matColumnDef="dataSurvey CountShare">
<th mat-header-cell *matHeaderCellDef>Share</th>
<td mat-cell *matCellDef="let element">
{{ element.dataUser.CountShare }}
</td>
</ng-container>
<!-- Symbol Column -->
<ng-container matColumnDef="dataUser Point">
<th mat-header-cell *matHeaderCellDef>Point</th>
<td mat-cell *matCellDef="let element">
{{ element.dataUser.Point }}
</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr
mat-row
*matRowDef="let row; columns: displayedColumns"
(click)="selection.toggle(row)"
></tr>
</mat-table>
这是我的component.ts文件。忽略接口xD上的名称输入方式]] >>export interface Userstructure {
_id: string;
CountLike: string;
CountShare: string;
Point: string;
}
export interface UserMain {
message: string;
dataUser: Userstructure[];
}
@component
displayedColumns: string[] = [
'_id',
'CountLike',
'CountShare',
'Point',
];
users: Userstructure[];
dataSource;
user;
selection = new SelectionModel<Userstructure>(true, []);
ngOnInit(): void {
console.log(this.users);//this return 'undefined' on console.
this.surveyService.getUsers().subscribe((users: Userstructure[]) => {
this.users = users;
this.dataSource = new MatTableDataSource(users);
});
}
im试图从本地主机获取数据,但是当涉及到不同的结构时,我不明白如何在数据用户上获取这些数据。有帮助吗?这就是我试图接近但失败并...
首先,DataSource需要一个对象数组,并且您要为其提供一个对象(基于您提供的示例Json)。因此,您只想使用响应的dataUser
部分。
this.surveyService.getUsers().subscribe((users: Userstructure[]) => {
this.users = users.dataUser;
this.dataSource = new MatTableDataSource(users.dataUser);
});