Is is possible to use ag-grid-community with LitElements?
This is what I have tried, I am unable to initialize the ag-grid instance with the below code,
Console Error – ag-grid-community.auto.esm.js:45056 Uncaught TypeError: Failed to execute ‘observe’ on ‘MutationObserver’: parameter 1 is not of type ‘Node’.
import { Grid } from 'ag-grid-community';
export class myComponent extends LitElement {
static scopedElements = {
'ag-grid': Grid
};
constructor() {
super();
this.columnDefs = [
{headerName: "Make", field: "make"},
{headerName: "Model", field: "model"},
{headerName: "Price", field: "price"}
];
this.rowData = [
{make: "Toyota", model: "Celica", price: 35000},
{make: "Ford", model: "Mondeo", price: 32000},
{make: "Porsche", model: "Boxter", price: 72000}
];
this.gridOptions = {
columnDefs: this.columnDefs,
rowData: this.rowData,
};
const eGridDiv = document.querySelector('#myGrid');
new Grid(eGridDiv, this.gridOptions);
}
render() {
return html`
<div>
<ag-grid
.gridOptions=${this.gridOptions}
></ag-grid>
</div>
`;
}
}
2
Answers
You must delete comments text from you code
also I think you fogot delete comma here:
The constructor is too soon to get a reference to a rendered div.
firstUpdated()
would be a good place to do that. You also need to give the div an id ("myGrid") and you need to query for it inthis.renderRoot
rather thandocument
.ag-grid also needs styles loaded for it to work so I’ve added link tags in the returned template below. This could be improved by grabbing the styles directly and wrapping it with
css
tag function to provide to the component as static styles instead.