首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何将Angular 10组件添加到Ag-Grid单元

如何将Angular 10组件添加到Ag-Grid单元
EN

Stack Overflow用户
提问于 2020-10-20 21:42:15
回答 2查看 185关注 0票数 0

我有一个Angular10组件(切换开关),我需要将它包含在我的ag-grid (单元格)的特定列中。

目前,我有一个标准的html复选框,如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
colDefs: ColDef[] = [
    { field: 'Name',             headerName: 'Name'},
    { field: 'Somethingelse',    headerName: 'Something else'},
    { field: 'Checkbox',         headerName: 'A Checkbox',      //<--this one
        editable:true,    
        checkboxSelection: false,   
        headerCheckboxSelection: false,   
        filter: false,    
        sortable: false,    
        cellRenderer: function (params: { value: boolean; }) {. //<--draws this
          var input = document.createElement("input");
          input.type = "checkbox";
          input.checked = params.value;
          return input;            //<--want to draw my component here instead
    } }
  ];

我要使用的组件已存在于我的项目中,而不是复选框:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { Component, OnInit } from '@angular/core';
@Component({
  selector: 'my-toggle-switch',
  templateUrl: './toggle-switch.component.html',
  styleUrls: ['./toggle-switch.component.scss']
})
export class ToggleSwitchComponent implements OnInit {
  selected: boolean = false;
  constructor() { }
  ngOnInit(): void {}
}

如何在复选框中包含Angular10组件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-22 07:43:34

首先,在AG Grid组件文件中导入组件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import { ToggleSwitchComponent } from './ToggleSwitchComponent '; // whatever is the path

coldef中,只需将渲染器分配给cellRenderer即可

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
  { 
        field: 'Checkbox',
        headerName: 'A Checkbox',
        editable:true,    
        checkboxSelection: false,   
        headerCheckboxSelection: false,   
        filter: false,    
        sortable: false,    
        cellRenderer: 'ToggleSwitchComponent'
    } }

第三,在frameworkComponents下注册您的组件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 this.frameworkComponents = {
      ToggleSwitchComponent: ToggleSwitchComponent,
...
...
}

这就是让您的自定义组件呈现所需的全部内容。

票数 2
EN

Stack Overflow用户

发布于 2020-10-20 22:16:23

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Few custom classes you need to add as per your need. Hope you can customize it by yourself. If you need all files let me  know I will send you generic files.  

<table class="table table-bordered table-hover">
        <thead>
          <tr>
            <th width="2%"></th>
            <th width="20%">Rule Name</th>
            <th width="10%">Rule ID</th>
          </tr>
        </thead>
        <tbody>
          <tr *ngFor="let item of gridItems">
            <td width="2%">
             <generic-checkbox [chkbxoptid]="'ruleId'"
              [data]="item.ruleInfo"
              ></generic-checkbox>
            </td>
            <td width="20%">{{item.ruleInfo.ruleName}}</td>
            <td width="10%">{{item.ruleInfo.ruleId}}</td>
          </tr>
        </tbody>
      </table>
    
    
    genericcomponent.ts
    import { Component, Input, OnInit, OnDestroy } from '@angular/core';
    
    import { TVUIConstants } from '../utils/tvconstants';
    import { Subscription } from 'rxjs';
    import { Rule } from '../models/rule-models';
    import { BaseServices } from '../services/base.service';
    import { UIDGenerator } from '../services/uid-generator.service';
    @Component({
      selector: 'generic-checkbox',
      template: `<input type="checkbox" [(ngModel)]=
      "isChecked"  *ngIf="hideCheckBox"
      value="{{isChecked}}" (click)='checkClickHandler()'>`
    
    })
    
    export class ChkBoxComponent implements OnInit, OnDestroy {
        @Input() chkbxoptid:string;
        @Input() multiselectable:boolean = true;
        @Input() set data(value:any){
          if(value === undefined ||
            (this.chkbxoptid
              && value
              && value[this.chkbxoptid] === undefined)){
            this._hideCheckBox = false;
          }else{
            this._data = value;
            this._hideCheckBox = true
          }
        }
        @Input() rowindex:number;
        private isChecked:boolean;
        private _subscription: Subscription;
        private _hideCheckBox:boolean;
        private _data:any;
        private _chkbxunqid:string;
    
        constructor(private baseService:BaseServices,
                    private uidGenerator:UIDGenerator) {
          this._subscription = this.baseService.dataEvent.dataObserver.subscribe(data => {
            if(data.subevnttype === TVUIConstants.CLEAR_CHKBX_REF
              && data.cid !== undefined
              && data.cid !== this._chkbxunqid){
              this.isChecked = data.value;
              if(this._data)
                this._data.isChecked = data.value;
            }else if(data.subevnttype === TVUIConstants.REFRESH_RULES){
              if(this.isChecked && this.isChecked === true){
                this.isChecked = false;
              }
    
            }
          })
         }
    
        ngOnInit() {
          if(!this.multiselectable){
           // this._chkbxunqid = this.uidGenerator.getUnqUID("chkbx_");
          }
          if(this._data && this._data.isChecked === true)
                     this.isChecked = this._data.isChecked;
        }
    
        private checkClickHandler():void{
          this.isChecked = !this.isChecked;
          this._data.isChecked = this.isChecked;
    
          if(!this.multiselectable && this.isChecked){
           // this.baseService.dataEvent.publishEvt({subevnttype: TVUIConstants.CLEAR_CHKBX_REF, cid: this._chkbxunqid, value: false})
          }
        }
    
        get hideCheckBox(){
          return this._hideCheckBox;
        }
    
        ngOnDestroy() {
          // prevent memory leak when component destroyed
          this._subscription.unsubscribe();
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64453728

复制
相关文章
基于 Angular Material 的 Data Grid 设计实现
距离 Extensions Data Grid 重构已经过去了两个多月,因工作忙碌而迟迟没有介绍 Extensions Data Grid 的细节。这几天又重构了一下官网示例,目前的 API 文档放在了 gitbook 上,暂时还没有和官网整合,国内访问会比较慢。本文会介绍 Data Grid 的使用方法及比较好的一些功能实现。说点题外话,开发一款插件最大的难度不在于功能的实现,而在于如何去设计插件。
叙帝利
2020/06/29
5.1K0
基于 Angular Material 的 Data Grid 设计实现
20 多个好用的 Vue 组件库
地址:https://github.com/matfish2/vue-tables-2
唐志远
2022/10/27
7.9K0
20 多个好用的 Vue 组件库
Angular 主从组件
把所有特性都放在同一个组件中,将会使应用“长大”后变得不可维护。 你要把大型组件拆分成小一点的子组件,每个子组件都要集中精力处理某个特定的任务或工作流。
HoneyMoose
2019/05/30
1.2K0
Angular 组件样式
但某些时候我们需要根据不同的条件,为指定元素应用不同的样式。对于这种场景,我们可以使用属性绑定,如:
阿宝哥
2019/11/05
2K0
Angular 主从组件
把所有特性都放在同一个组件中,将会使应用“长大”后变得不可维护。 你要把大型组件拆分成小一点的子组件,每个子组件都要集中精力处理某个特定的任务或工作流。
HoneyMoose
2019/05/30
1.3K0
Angular UI 组件
官网:https://valor-software.com/ngx-bootstrap/#/
用户2098522
2018/05/05
1.5K0
Angular UI 组件
Angular 组件通信
上一篇,我们讲了 Angular 结合 NG-ZORRO 快速开发。前端开发,很大程度上是组件化开发,永远离不开组件之间的通信。那么,在 Angular 开发中,其组件之间的通信是怎么样的呢?
Jimmy_is_jimmy
2022/04/15
2K0
ag-grid 设置单元格以及行的颜色「建议收藏」
在使用ag-grid的时候有通过单元格的值设置不同行颜色,然后百度了网上的方法,汇总了一下,具体效果图如下:
全栈程序员站长
2022/09/14
3.5K0
ag-grid 设置单元格以及行的颜色「建议收藏」
20多个好用的 Vue 组件库,请查收!
Vue Tables 2旨在为开发者提供一个功能齐全的工具集,以便用 Vue 创建漂亮而实用的数据表格。数百个商业软件应用正在使用它。此外,Vue Tables 2正在不断成长、改进,同时也在获得新的功能。
前端小智@大迁世界
2022/04/01
7.7K0
20多个好用的 Vue 组件库,请查收!
Angular 动态创建组件
上面代码中,我们定义了一个简单的 AlertComponent 组件,该组件有一个输入属性 type ,用于让用户自定义提示的类型,此外还包含了一个输出属性 output,用于向外部组件输出信息。我们的自定义组件最终是一个实际的 DOM 元素,因此如果我们需要在页面中插入该元素,我们就需要考虑在哪里放置该元素。
阿宝哥
2019/11/05
3.7K0
ag-grid 学习
项目要将 angular 从 1.5升级到 5,ui-grid 在 5 中并不支持,所以为了替换 ui-grid ,来学习了 ag-grid 。
全栈程序员站长
2022/09/20
2.7K0
ag-grid 学习
Angular树组件开发
首先要注意的是this.DefaultConfig这个配置。一般来说,展示数据需要两个属性:Name和Code,Name是该节点在界面上展示的文字,他是可以重复的,展示的时候也会考虑添加一些符合用户阅读习惯的信息。Code是该节点的主键,即是使用树组件时判断选中了哪个节点的唯一标识。开发过程中,使用的数据结构并不一定恰好是Name和Code,因此允许开发者指定自己数据结构中对应功能的属性名。Member是该节点的子节点列表。同样我们允许开发者指定属性名。TreeData是用户需要展示的数据。
4cos90
2021/03/27
1.4K0
Angular 4 组件通信
最近在项目上,组件跟组件之间可能是父子关系,兄弟关系,爷孙关系都有。。。。。我也找找了很多关于组件之间通讯的方法,不同的方法应用在不同的场景,根据功能需求选择组件之间最适合的通讯方式。下面我就总结一下关于组件通讯的N多种方法。
半指温柔乐
2020/06/10
9140
如何将WebRTC播放协议添加到EasyCVR?
自2020年浏览器的发展和兼容性发生了变化,WebRTC的延时性、安全性得到了提升和保护,尤其是疫情爆发后,实时视频的需求比之前增长了30倍,这更刺激了WebRTC产品的持续快速发展。因此我们也在EasyGBS、EasyDSS等平台内实现了WebRTC协议的播放。
TSINGSEE青犀视频
2021/11/23
1.4K0
Angular DataGrid组件开发
dataGrid的组件的基本功能可以说非常简单,用户输入的对象中需要包含三个参数:
4cos90
2021/04/04
1.2K0
Angular日期组件开发
这个组件可以拆分成两部分,第一个部分是时间框和时间选择窗口,包括确定,取消按钮,即目录中的dateTime组件。第二个部分是通过滚轮选择日期,即目录中的ScrollDateTime组件。目录中还包含一个自定义管道,考虑到滚轮选择日期时,只有中间的数字是有用的,因此上下两个数字可用管道生成,不需要用额外的变量去控制。
4cos90
2021/03/07
1.5K0
在 CentOS 上如何将用户添加到 Sudoers
sudo是一个命令行工具,它被设计为允许用户以其他用户(默认是 root 用户)身份去运行命令。
雪梦科技
2020/05/11
11.5K0
在 CentOS 上如何将用户添加到 Sudoers
在 Debian 中如何将用户添加到 Sudoers
sudo是一个命令行工具,它允许被信任用户以另外一个用户身份运行命令,默认是 root 用户。
雪梦科技
2020/05/11
12.6K0
在 Debian 中如何将用户添加到 Sudoers
Angular2 之 单元测试
Angular的测试工具类包含了TestBed类和一些辅助函数方法,当时这不是唯一的,你可以不依赖Angular 的DI(依赖注入)系统,自己new出来测试类的实例。
贺贺V5
2018/08/21
5.5K0
Angular2 之 单元测试
React 中引入 Angular 组件
为了在我的编辑器中使用 Angular,我用 Angular 编写了一个重命名功能。而为了使用它,我得再次使用一次 customEvent,而在这个微前端架构的系统中,其事件通讯机制已经相当的复杂。在这部分的代码进一步恶化之前,我得尝试有没有别的方式。于是,我想到了之前在其它组件中使用的 Web Components 技术,而 Angular 6 正好可以支持。
不知雨
2018/08/21
2.1K0

相似问题

如何让gcc生成旋转指令?

11

让GCC在使用向量扩展时生成PTEST指令

39

gcc可以在没有交叉编译的情况下为Arm生成二进制文件吗

13

如何让GCC像ICC一样生成向量指令?

14

无法在没有主键的情况下为模型生成模块

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文