جاوااسکریپت - 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 تعریف نشده است

پاسخ شماره ۱

شما میتوانید این رویکرد را داشته باشید.

  1. یک علامت در کامپوننت خود داشته باشید تا زمانی که شبکه را نمایش دهید.
  2. از این پرچم برای نمایش مشبک بهصورت شرطی با استفاده از *ngIf استفاده کنید
  3. این مقدار پرچم را هنگام کلیک روی دکمه تنظیم کنید

به این ترتیب، قالبی که 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>