【发布时间】:2020-06-09 15:22:28
【问题描述】:
我正在尝试在 ag-grid 文档中重新创建此示例:https://www.ag-grid.com/javascript-grid-master-detail/
我收到了这个错误,我不知道为什么。其他一切似乎都运行良好:
ag-Grid: could not find matching row model for rowModelType clientSide
ag-Grid: Row Model "Client Side" not found. Please ensure the ClientSideRowModelModule is loaded using: import '@ag-grid-community/client-side-row-model';
这是我的组件中的确切代码:
import { HttpClient } from "@angular/common/http";
import { AllModules } from "@ag-grid-enterprise/all-modules";
import "@ag-grid-community/all-modules/dist/styles/ag-grid.css";
import "@ag-grid-community/all-modules/dist/styles/ag-theme-balham.css";
@Component({
selector: "my-app",
template: `
<ag-grid-angular
#agGrid
style="width: 100%; height: 100%;"
id="myGrid"
class="ag-theme-balham"
[modules]="modules"
[columnDefs]="columnDefs"
[masterDetail]="true"
[detailCellRendererParams]="detailCellRendererParams"
[rowData]="rowData"
(firstDataRendered)="onFirstDataRendered($event)"
(gridReady)="onGridReady($event)"
></ag-grid-angular>
`
})
export class TopsheetComponent {
private gridApi;
private gridColumnApi;
public modules = AllModules;
private columnDefs;
private detailCellRendererParams;
private rowData;
constructor(private http: HttpClient) {
this.columnDefs = [
{
field: "name",
cellRenderer: "agGroupCellRenderer"
},
{ field: "account" },
{ field: "calls" },
{
field: "minutes",
valueFormatter: "x.toLocaleString() + 'm'"
}
];
this.detailCellRendererParams = {
detailGridOptions: {
columnDefs: [
{ field: "callId" },
{ field: "direction" },
{ field: "number" },
{
field: "duration",
valueFormatter: "x.toLocaleString() + 's'"
},
{ field: "switchCode" }
],
onFirstDataRendered: function(params) {
params.api.sizeColumnsToFit();
}
},
getDetailRowData: function(params) {
params.successCallback(params.data.callRecords);
},
template: function(params) {
var personName = params.data.name;
return (
'<div style="height: 100%; background-color: #EDF6FF; padding: 20px; box-sizing: border-box;">' +
' <div style="height: 10%;">Name: ' +
personName +
"</div>" +
' <div ref="eDetailGrid" style="height: 90%;"></div>' +
"</div>"
);
}
};
}
onFirstDataRendered(params) {
params.api.sizeColumnsToFit();
setTimeout(function() {
params.api.getDisplayedRowAtIndex(1).setExpanded(true);
}, 0);
}
onGridReady(params) {
this.gridApi = params.api;
this.gridColumnApi = params.columnApi;
this.http
.get(
"https://raw.githubusercontent.com/ag-grid/ag-grid-docs/latest/src/javascript-grid-master-detail/template-callback-customisation/data/data.json"
)
.subscribe(data => {
this.rowData = data;
});
}
}
这与文档中的示例几乎相同。
这是我package.json中的依赖项
"dependencies": {
"@ag-grid-enterprise/all-modules": "^22.1.2",
"ag-grid-angular": "^22.1.1",
"ag-grid-community": "^22.1.1",
"ag-grid-enterprise": "^22.1.1",
}
如果没有所有这些依赖项,我就会遇到问题。我在这里缺少什么吗?我也在 app.module.ts 中正确添加了所有内容:
import { AgGridModule } from 'ag-grid-angular';
@NgModule({
imports: [
AgGridModule.withComponents([])
]
})
^ 这已被缩短以使其更易于阅读。但是我在这里遗漏了一些明显的东西吗?
【问题讨论】:
-
AgGridModule.withComponents([])所在的模块,TopSheetComponent是否包含在其declarations数组中?另外,试试这个答案:stackoverflow.com/questions/58821634/… -
@AliF50 是的,一切都在那里:?我看到了那个答案,并且正在修改他们所说的内容,但也无法让它发挥作用。我的意思是我正在导入 AllModules,所以我不需要导入其他任何东西,对吧?我应该把它们都买下来吗?
-
是的,我在一个使用 Ag-Grid 的项目中,但我在
21.0.1。在那个版本上,你不必这样做。 -
哪个农业网格?显然
@ag-grid-enterprise/all-modules没有 21.0.1 的版本:/ -
我正在从事的项目中不使用企业。今晚我将尝试在 stackblitz 或本地创建它,并会回复您。
标签: angular ag-grid ag-grid-angular