【问题标题】:How to access Class Level Variable from onCellValueChanged of agGrid如何从 agGrid 的 onCellValueChanged 访问类级别变量
【发布时间】:2019-12-01 00:57:44
【问题描述】:

我是使用 Typescript 的 Angular 新手。我想访问 agGrid 的 onCellValueChanged 事件中的类级别变量。我收到以下错误:-

无法读取未定义的属性“updateDict”

我的 TypeScript 代码如下:-

import { Component, OnInit } from '@angular/core';
import { APICallService } from '../../.././PortalServices/webapicall.service';

@Component({
    selector: 'master-gender',
    templateUrl: 'app/PortalPages/MasterPages/GenderMaster/gender.component.html',
    providers: [APICallService],
})

export class GenderComponent implements OnInit {
    private updateDict = new Map();
    genderRowData: [];  

    constructor(private genderService: APICallService) {
    }

    ngOnInit() {
        this.genderService.getApiCall('getallgenders')
            .subscribe((rowData) => this.genderRowData = rowData,
                (error) => { alert(error) }
            );   
    }

    columnDefs = [
        {
            headerName: 'Gender Name', field: 'Name',          
            cellEditor: 'agLargeTextCellEditor',
            cellEditorParams: {
                maxLength: '100',
                cols: '20',
                rows: '2'
            },
            onCellValueChanged: this.genderCellValueChanged           
        },
    ]

    genderCellValueChanged(event: any) {
        let oldData = '';

        //Error coming from below line

        if (typeof (this.updateDict[event.data.GenderId + ',' + event.colDef.field]) != 'undefined')
            oldData = this.updateDict[event.data.GenderId + ',' + event.colDef.field].OldData;
        else
            oldData = event.oldValue;
        console.log(oldData);
    }
}
  1. 如何解决问题?
  2. 是否可以将“genderCellValueChanged”方法移动到子组件(单独的 .ts 文件)?如果是,您能否详细说明步骤?

【问题讨论】:

    标签: angular typescript angular2-forms ag-grid


    【解决方案1】:

    您应该使用bind 方法来设置this 上下文,如下所示:

    onCellValueChanged: this.genderCellValueChanged.bind(this)
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      updateDict 中没有值,但它已定义。它的Object

      检查这个Example

      if (typeof this.updateDict != 'undefined')
          {
             console.log(this.updateDict.size);
              this.updateDict.set('1', 'str1');   
              console.log(this.updateDict.size);
          }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-11-13
        • 2022-11-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-11-25
        • 1970-01-01
        • 2016-01-22
        相关资源
        最近更新 更多