我正在使用角度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();
    }

最佳答案

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

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


[...]

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


这样,您就不必使用Java很难管理的“ this”,但是您对本地上下文有一定的引用

07-24 17:24