Получить глобально значения переменной JS
есть задача - передать переменную с массивом данных (таблица ag-grid) из main.js (class) в модальное окно (у нее другой маршрут и описание находится в отдельном blade <sсript>...</sсript>). Я обычно передавал путем axios через контроллер в модальное окно, но столкнулся с проблемой, что когда количество строк превышает 10 000, начинаются танцы с бубном и потеря производительности, тк большой объем данных уходит в модальное окно и она просто даже не реагирует и падает сервер... Хочу уйти от передачи через контроллер и забирать переменную с массивом данных в blade файле из главного JS файла. Вот как я передавал ранее
get_sending(){
let get_data =[];
let context=this;
let api = context.dataSetTable.gridOptions.api;
api.forEachNodeAfterFilter(function (rowNode) {
get_data.push(rowNode.data);
});
axios({
method: 'post',
url: '/arm/work_dataset_main/modalAdding',
data: { header:context.dataSetTable.myHeader, data: get_data}
}).then(
function (response) {
$('#modal_main').html();
$('#modal_main').html(response.data);
$('#modalAdding').modal('show');
}
).catch(function (error) {
});
}
Проект на Laravel + ag-grid
Ответы (1 шт):
В таком случае - лучше всего: найти кодера, который подпишет nda и будет делать work с тобой
А пока, вот немножко рефакторинга, ибо сверху 10 строк текста, снизу какой-то код - тз не понятное (И да, как ты уже сам понял, реализация у тебя заведомо неправильная)
function get_sending(){
const get_data = [];
const context = this;
const api = context.dataSetTable.gridOptions.api;
api.forEachNodeAfterFilter((rowNode)=>{
get_data.push(rowNode.data);
});
axios({
method: 'post',
url: '/arm/work_dataset_main/modalAdding',
data: {header: context.dataSetTable.myHeader, data: get_data},
}).then((response)=>{
if(!response || !response.data)throw new Error({message: 'No data in response'});
console.log('Good');
$('#modal_main').html();
$('#modal_main').html(response.data);
$('#modalAdding').modal('show');
}).catch((e)=>{
console.log(`Err ${e.message}`);
});
}