首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AgGrid中观察到:CellRenderer

在AgGrid中观察到:CellRenderer
EN

Stack Overflow用户
提问于 2021-02-08 11:43:04
回答 2查看 796关注 0票数 2

我试图从后端向AGGrid单元呈现器组件添加一些数据,但它没有读取可观察到的数据

以下是我迄今所尝试的

cellRendererParams

  • 直接从cellRenderer组件中调用服务

  • 调用数据网格中的服务并将值传递为cellRenderer

代码语言:javascript
复制
// My Grid Options
gridOptions: {
  columnTypes: {
    "actionColumn": {
     cellRenderer: 'actionColumnRenderer',
     cellRendererParams: {
        canEdit$: this.userInfo.getUserRole() // Returns a Observable<boolean>
     }
  }
}
代码语言:javascript
复制
//Inside ActionColumnRenderer
  <div *ngIf="(canEdit$|async)></div>
代码语言:javascript
复制
// Calling in the service in the actionRenderer directly
agInit(params:any){
  this.params = params;
  this.canEdit$ = this.userInfo.getUserRole();
}

可观察到的组件没有什么问题,因为我能够在所有其他组件(甚至在数据网格组件中)中访问它。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-09 15:51:46

当您想要在单元格呈现器内部使用角时,您应该设置cellRendererFramework属性,而不是cellRenderer属性。例如:

代码语言:javascript
复制
customColumn: {
  cellRendererFramework: MyCellComponent
}

然后,您将能够在单元组件中使用您的服务,并且可观察到的服务也会工作。请参阅使用可观察到的:https://stackblitz.com/edit/angular-ag-grid-cell-renderer的角单元渲染器组件的简单示例。

文档:https://www.ag-grid.com/documentation/angular/components/#registering-framework-components

票数 1
EN

Stack Overflow用户

发布于 2022-11-22 16:13:07

将参数作为如下函数传递:

代码语言:javascript
复制
canEdit$: () => this.userInfo.getUserRole()

然后在CellRenderer内部:

代码语言:javascript
复制
// Calling in the service in the actionRenderer directly
agInit(params:any){
  this.params = params;
  this.canEdit$ = canEdit$;
}

模板:

代码语言:javascript
复制
//Inside ActionColumnRenderer
<div *ngIf="(canEdit$()|async)></div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66100962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档