【发布时间】:2019-04-06 18:49:53
【问题描述】:
我在通过 Angular 材料显示列表时遇到问题。列表内容不显示,而标题显示。
组件:
export class CompaniesComponent implements OnInit {
displayedColumns: string[] = ['id'];
data: Company[] = [];
isLoadingResults = true;
constructor(private api: ApiService) { }
ngOnInit() {
this.api.getAllCompanies()
.subscribe(res => {
this.data = res;
console.log(this.data);
this.isLoadingResults = false;
}, err => {
console.log(err);
this.isLoadingResults = false;
});
}
}
html:
<div class="example-container mat-elevation-z8">
<div class="example-loading-shade"
*ngIf="isLoadingResults">
<mat-spinner *ngIf="isLoadingResults"></mat-spinner>
</div>
<div class="mat-elevation-z8">
<table mat-table [dataSource]="data" class="example-table"
matSort matSortActive="id" matSortDisableClear matSortDirection="asc">
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef>Id</th>
<td mat-cell *matCellDef="let row">{{row.Id}}</td>
</ng-container>
<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
</table>
</div>
</div>
列表元素格式(json):
{
"id": 21,
"companyName": "iErjVkVG",
"companyDescription": "12345",
"rating": 1,
"companyValuation": 756,
"salary": 3.22,
"professionalGrowth": 2.56,
"companyBenefits": 2.44,
"communicationWithColleagues": 2.67,
"educationSector": 3.11,
"numberOfVotes": 0
}
有人可以指出我做错了什么,因为似乎根本不应该出现问题
更新
公司等级:
export class Company {
Id: number;
CompanyName: string;
CompanyDescription: string;
Rating: number;
CompanyValuation: number;
Salary: number;
ProfessionalGrowth: number;
CompanyBenefits: number;
CommunicationWithColleagues: number;
EducationSector: number;
}
数据$方法:
export class CompaniesComponent implements OnInit {
displayedColumns: string[] = ['id'];//, 'companyName'];
data$: Observable<Company[]>;
isLoadingResults = true;
constructor(private api: ApiService) { }
ngOnInit() {
this.data$ = this.api.getAllCompanies();
console.log(this.data$);
}
}
和html:
<table mat-table #table [dataSource]="data$" class="example-table"
matSort matSortActive="id" matSortDisableClear matSortDirection="asc">
【问题讨论】:
-
为什么 data$ 类型是 Observable ?请创建 stackblitz 示例。帮助你会容易得多。
标签: angular typescript html-table angular-material