область доступа из шаблона ячейки ag-grid

#angularjs #ag-grid #ag-grid-angular

#angularjs #ag-grid #ag-grid-angular

Вопрос:

Как запустить функцию angular js (ng-blur) из шаблона ячейки ag-grid?

Ниже приведено мое определение столбца для ag-grid

 var columnDefs = [
          {headerName: "Make", field: "make" , template:'<input type="text" class="form-control control-width-90 margin-left-5" ng-blur="alert('wewew')"/>'},
          {headerName: "Model", field: "model"},
          {headerName: "Price", field: "price"}
        ];
  

Данные для ag-grid

 var rowData = [
          {make: "Toyota", model: "Celica", price: 35000},
          {make: "Ford", model: "Mondeo", price: 32000},
          {make: "Porsche", model: "Boxter", price: 72000}
        ];
  

Параметры сетки

 $scope.gridOptions = {
              columnDefs: columnDefs,
              rowData: rowData
};
  

Вывод
[PFA для вывода][1]
[1]: https://i.stack.imgur.com/WEttX.png

Основываясь на определении столбца, я могу отобразить шаблон, но не могу вызвать событие при размытии. Может кто-нибудь подсказать мне, как вызвать событие из пользовательского шаблона или получить доступ к области из пользовательского шаблона ag-grid? Заранее спасибо!

Ответ №1:

Вы хотите вызвать событие при изменении значения ячейки? Затем вы можете использовать событие (CellValueChanged) сетки ag.

Комментарии:

1. Событие CellValueChanged запускается с определением столбца ag-grid по умолчанию. В моем случае у меня есть пользовательский шаблон ячейки для определения столбца и инициирует событие при размытии моего входного элемента. Вы можете взглянуть на мое определение столбца, где я упомянул шаблон для поля «make».

2. в этом случае пользовательский CellRenderer вместо шаблона, как показано ниже: CellRenderer: (параметры) => { пусть input = document.createElement(«ВВОД»); input.setAttribute(«тип», «текст»); input.addEventListener(‘blur’, (e) => { this.onblur(); }); возвращает ввод; }