https://www.ag-grid.com/vue-data-grid/grid-interface/
(이번글은 Grid Interface페이지를 보고 작성)
메서드, 속성 및 이벤트를 포함하여 애플리케이션이 그리드와 상호 작용하는 데 사용할 수 있는 공용 인터페이스에 대해 설명
일단은 Properties, API, Events에 대해서만 알아볼 예정.
나머지는 공식문서를 참고하자.
https://www.ag-grid.com/vue-data-grid/grid-interface/
Attributes : attributes는 properties지만, 바인딩되지 않음. 대신 리터럴 값이 제공됨.
ex) rowSelection="multiple"
Properties : properties는 바인딩 되는 속성.
ex) :columnDefs = "columnDefs"
Callback : 바인딩이 가능.
ex) isScrollLag = "myIsScrollLagFunction"
Event Handler : 표준 Angular 방식으로 바인딩됨. 이때 이벤트 이름은 kabab-case를 사용.
ex) @cell-clicked="onCellClicked"
API : 그리드 API와 컬럼API는 컴포넌트를 통해 접근 가능.
그리드가 초기화되면 gridReady이벤트가 발생함.
그리드 API를 사용하려면 그리드에 onGridReady(params)콜백을 넣고, params에서 API를 가져와야함.
그 후 나중에 API를 호출하여 그리드와 상호작용. (속성을 설정하고 변경하여 수행할 수 있는 상호 작용 외에도)
무슨 소리인지 아래 코드를 보자.
<ag-grid-vue
...
@grid-ready="onGridReady"
...
/>
<script>
onGridReady = (params) => {
this.api = params.api;
this.columnApi = params.columnApi;
}
</script>
이처럼 ag-grid-vue에서 콜백을 넣고, params에서 API를 가져와 그다음 API를 호출하여 사용한다.
그리드 옵션은 일반 프레임워크 바인딩 대신 또는 추가로 사용할 수 있습니다.
<ag-grid-vue
:gridOptions="gridOptions"
...
/>
...
const gridOptions = {
// PROPERTIES
// Objects like myRowData and myColDefs would be created in your application
rowData: myRowData,
columnDefs: myColDefs,
pagination: true,
rowSelection: 'single',
// EVENTS
// Add event handlers
onRowClicked: event => console.log('A row was clicked')
onColumnResized: event => console.log('A column was resized')
onGridReady: event => console.log('The grid is now ready')
// CALLBACKS
isScrollLag: () => false
}
그리드가 초기화 되면 그리드API및 columnAPI에 엑세스가 가능.
// refresh the grid
this.gridOptions.api.refreshView();
// resize columns in the grid to fit the available space
this.gridOptions.columnApi.sizeColumnsToFit();
그리드 이벤트는 비동기식이므로 이벤트 콜백이 호출될 때 그리드 상태가 결정됨.
속성이 boolean인 경우 false가 기본값입니다. ( 또는 공백으로 남겨둡니다.)