Я использую 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();
}
Это потому, что вы объявили gridOptions как переменную, а не как часть этого. Что вы можете сделать, так это:
var vm = this;
vm.gridOptions={...}
[...]
delete() {
var selectedRows = vm.gridOptions.api.getSelectedRows();
}
Таким образом, вы не относитесь к "этому", который трудно обрабатывать в Javascript, но у вас есть определенная ссылка на локальный контекст