1

我正在使用角度为 2 的 ag-grid。

我创建了一个具有删除和更新按钮的自定义上下文菜单。在一个场景中,用户选择一个或多个行,然后右键单击并单击删除或更新按钮。

这些按钮使用 gridOptions 调用一些函数来获取选定的行。

然而; 当我单击删除或更新按钮时,出现一个错误,提示 this.gripOptions 未定义。

有没有关于此的示例或文档?我该如何克服这个问题?

感谢您的回复

    var gridOptions = {
        columnDefs: columnDefs,
        enableRangeSelection: true,
        getContextMenuItems: getContextMenuItems,
        allowContextMenuWithControlKey: true
    };
    getContextMenuItems(params) {
        var result = [
            { // custom item
                name: 'Delete',
                action: function () { this.delete()); }
            } 

    return result;
    }

    delete() {
        var selectedRows = this.gridOptions.api.getSelectedRows();
    }
4

1 回答 1

0

这是因为您将 gridOptions 声明为变量,而不是其中的一部分。你可以做的是:

var vm = this;
vm.gridOptions={...}

[...]

 delete() {
    var selectedRows = vm.gridOptions.api.getSelectedRows();
}

通过这种方式,您不会涉及“this”,这在 Javascript 中很难管理,但是您对本地上下文有一定的参考

于 2017-08-03T07:33:38.040 回答