У меня была проблема с поиском чистого способа сделать это. Вы можете использовать это, чтобы получить ссылку на родительский компонент, который инициализировал cellRenderer
.
import {GridOptions} from "ag-grid";
constructor(){
this.gridOptions = <GridOptions>{
context: {
componentParent: this
}
};
}
Обязательно при рисовании сетки в HTML
<ag-grid-angular #grid-reference [gridOptions]="gridOptions">
Тогда в ваше cellRenderer
включите agInit
, который будет стрелять, когда класс будет нарисован.
public params;
public agInit(params: any): void {
this.params = params;
console.log(this.params.context.componentParent);
// access to parent functions / variables etc
}
Так, например, после события, если у вас был public hello: string
в родителе, вы могли бы сделать следующее ниже.
this.params.context.componentParent.hello = "hi"; // could be function call.
Это должно затем позволить вам делать то, что вам нужно, взаимодействуя между ними. Контекст связан.
Надеюсь, это то, что вы ищете.
Вот документация ag-grid .