Обновление и удаление с помощью пользовательского контекстного меню Ag-Grid

1

Я использую ag-сетку с угловым 2.

Я создал настраиваемое контекстное меню с кнопками удаления и обновления. В сценарии пользователь выбирает одну или несколько строк, а затем щелкает правой кнопкой мыши и нажимает кнопку удаления или обновления.

Эти кнопки вызывают некоторые функции, которые обрабатывают с помощью 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();
    }
  • 0
    Можете ли вы добавить некоторые фрагменты кода для отладки или вы просто ищете общий источник?
  • 0
    Конечно, я могу добавить код прихода однако; кажется, что это общая проблема с ag-grid. Насколько я понимаю, пользовательское контекстное меню подготовлено и не может войти в контакт с любым другим внешним кодом. Я попытался использовать переменную, которую я определил в .ts, но опять же, ошибка говорит, что переменная не определена.
Теги:
ag-grid
ag-grid-ng2

1 ответ

0
Лучший ответ

Это потому, что вы объявили gridOptions как переменную, а не как часть этого. Что вы можете сделать, так это:

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

[...]

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

Таким образом, вы не относитесь к "этому", который трудно обрабатывать в Javascript, но у вас есть определенная ссылка на локальный контекст

  • 0
    Спасибо за ответ! Я решил свою проблему с этим ответом; stackoverflow.com/a/45374506/7826844 Однако; ваш ответ тоже правильный!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню