angular - Angular Material Table:提供的数据源与数组、Observable 或 DataSource 不匹配
问题描述
我正在使用角度材料表,但由于以下错误,我无法填充网格:
错误:提供的数据源与数组、Observable 或 DataSource 不匹配
搜索服务.ts
GridSubmittedFilesList: IGridModel;
getFilesSubmitted(data: any): Observable<IGridModel> {
return this.http.post<IGridModel>(this._url, JSON.stringify(data),
{ headers: { 'Content-Type': 'application/json' }, withCredentials: true });
}
组件.ts
export class ResultGridComponent implements OnInit {
constructor(private searchSubmissionService: SearchSubmissionService) { }
gridSubmittedFilesList: IGridModel;
displayedColumns = ['report', 'business', 'location'];
ngOnInit(): void {
this.searchSubmissionService.searchSource$.subscribe(
message => {
this.sendPostReq(message);
}
);
}
sendPostReq(data: any): any {
this.searchSubmissionService.getFilesSubmitted(data)
.subscribe(data => this.gridSubmittedFilesList = data
);
}
}
IGridModel.ts
import { Result } from './Result';
export interface IGridModel {
Result: Result
}
结果.ts
export interface Result {
//grid
ReportName: string;
Business: number;
Location: string;
}
结果-grid.component.ts
<div class="mat-elevation-z8 div-expanded" style=" height: 58vh;">
<!-- [hidden]="dataSource.data.length==0" -->
<table mat-table [dataSource]="gridSubmittedFilesList" matSort
class="schedule-status-table">
<ng-container matColumnDef="report">
<th mat-header-cell *matHeaderCellDef mat-sort-header> Request Id </th>
<td mat-cell *matCellDef="let row"> {{row.Result.ReportName}} </td>
</ng-container>
我无法意识到我做错了什么......我做了同样的方式来填充下拉列表并且没有问题,但是使用这个材质网格是不可能的..有什么想法吗?谢谢!
解决方案
您必须初始化gridSubmittedFilesList
为一个空数组,因为它null
现在或只是*ngIf
为此表设置,直到gridSubmittedFilesList.length !== 0
推荐阅读
- css - React native:试图在滚动时隐藏搜索栏
- javascript - 如果目标平台是 Raspberry Pi OS (arm),则禁用代码行 (JavaScript/QML)
- angular - 带有 AAD 的 Azure Function Cors
- python - 在上下文之外使用烧瓶变量
- android - 错误“请在编译 kodi 时将 gnulib freadahead.c 移植到您的平台
- azure - 如何使用 C# 或任何其他语言触发 Synapse Analytics Workspace 管道?
- boolean - Julia (JuMP):具有多个条件值的指标约束(布尔表达式可能吗?)
- c# - 如何为点燃缓存模型列名称自定义名称
- security - Azure devops 2019.1 - 活动日志
- python - Intellij pyspark 在发送其端口号之前因 Java 网关进程退出而失败。pyspark 在 MacOS 级别上运行正常