Я создаю это веб-приложение с django.
Я использую пакет grid от gij go, чтобы создать хорошую интерактивную таблицу с возможностью взаимодействия с моей базой данных.
Я использую базу данных neo4j, и, поскольку она не поддерживается напрямую, я изменяю запросы, чтобы она работала (изменяя код для загрузки / редактирования / удаления и т. Д.).
вот пример редактируемой таблицы:
https://gijgo.com/grid/demos/javascript-sourced-data
здесь вы можете видеть, что с помощью источника данных параметра вы можете указать взаимодействие с сервером или использовать json файл, созданный локально.
https://gijgo.com/grid/configuration/dataSource
Я использовал локальную версию, которую я определил в view.py для передачи объекта в страница (может быть, это неправильное слово), предварительно обработанная с помощью:
results = repr (dumps ())
, затем возвращаются результаты.
затем в HTML документ, в javascript я использовал
var data = jQuery .parse JSON ({{results | safe}});
это разрешено использовать его в параметре источника данных в функции сетки (как локальный объект).
Однако после обновления взаимодействий редактирования / нового я заметил, что, конечно, файл json, передаваемый из вида, предотвращает сетку для обновления (мне приходилось каждый раз обновлять страницу с помощью f5, чтобы увидеть результаты).
Поэтому я решил переместить создание json в javascript
Я использовал Драйверы neo4j и это делает свою работу,
после
$ (документ) .ready (function () {
, но до
grid = $ ( '#grid'). grid ({
Я добавил код для refre sh контейнера.
var driver = neo4j.driver(
'BOLT PATH',
neo4j.auth.basic('MYUSER', 'MYPASS'),
{ disableLosslessIntegers: true }
);
var session = driver.session({ defaultAccessMode: neo4j.session.WRITE });
session
.run("MYCYPHERQUERY")
.then(r => {
results = r.records.map(d => d.toObject());
data = JSON.stringify(results);
session.close();
console.log(data);
})
.catch(error => {
results = [];
console.log(error);
})
When console.log (data); срабатывает, я вижу, что в журнале именно то, что я хочу.
Однако я не могу передать это параметру источника данных.
Сначала у меня была ошибка ", не определенная в HTML ", что я решил определить переменную в верхней части javascript.
Кажется, что эта сеточная функция по каким-то причинам совершенно не может распознать контейнер данных.
I Предположим, у меня возникли проблемы между локальным / глобальным определением переменных или чем-то подобным.
Спасибо, что нашли время прочитать все это, даже больше, если у вас будет какой-либо намек на следование.