جاوااسکریپت - ag-grid onGridReady کار نمیکند
من میخواهم ag-grid را هنگام کلیک روی یک دکمه بارگذاری کنم. من دو روش را امتحان کردهام اما هیچکدام کار نمیکند
کد من: روش اول
onBtnClick(){
this.gridOptions ={
onGridReady : function(){
console.log("print");
}
}
}
روش دوم:
onBtnClick(){
this.onGridReady();
}
onGridReady(){
this.gridApi = params.api;
console.log("print");
}
روش اول کار نمیکند. روش دوم میگوید api تعریف نشده است
پاسخ شماره ۱
شما میتوانید این رویکرد را داشته باشید.
- یک علامت در کامپوننت خود داشته باشید تا زمانی که شبکه را نمایش دهید.
- از این پرچم برای نمایش مشبک بهصورت شرطی با استفاده از
*ngIfاستفاده کنید - این مقدار پرچم را هنگام کلیک روی دکمه تنظیم کنید
به این ترتیب، قالبی که ag-grid دارد تا زمانی که فلگ تنظیم نشده باشد، رندر نخواهد شد. وقتی فلگ تنظیم شود، قالب رندر شده و onGridReady فراخوانی خواهد شد.
<button (click)="btnClick()">Display grid</button>
<ag-grid-angular *ngIf="displayGrid"
#agGrid
......
></ag-grid-angular>
btnClick(){
this.displayGrid = true;
}
این مثال عملی را بررسی کنید: نمایش ag-grid با کلیک روی دکمه
پاسخ شماره ۲
آیا بررسی کردهاید که ag-grid به onGridReady متصل است یا خیر؟
این باید چیزی شبیه به این باشد:
<ag-grid-angular
...
(gridReady)="onGridReady($event)"
>
</ag-grid-angular>
