Я использую jsGrid
с локальным json
файлом в качестве источника данных. Я настроил локальный json-server
, работающий на порте 4000, для обслуживания динамических данных. Когда я нажимаю http://localhost:4000/networks
, я вижу json просто отлично. Я также настроил локальный http-сервер с пакетом npm
http-server
, чтобы попасть на мою веб-страницу. Однако, когда я пытаюсь нажать http://localhost:8080
, я получаю пустую страницу. В консоли разработчика я вижу эту ошибку: jquery-3.4.1.min.js:2 Uncaught ReferenceError: filter is not defined
. Я немного новичок в jQuery
, и не уверен, почему эта ошибка происходит. Ниже моя структура каталогов, мой html
файл, js, пример json и ошибка.
Tree:
.
└── src
├── data
│ └── scan.json
├── hosts.js
├── index.html
├── jsgrid-theme.css
├── jsgrid-theme.min.css
├── jsgrid.css
├── jsgrid.js
├── jsgrid.min.css
├── jsgrid.min.js
└── style.css
index.html:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-3.4.1.min.js"></script>
<link href="style.css" rel="stylesheet">
<link href="jsgrid.min.css" rel="stylesheet">
<link href="jsgrid-theme.min.css" rel="stylesheet">
</head>
<body>
<div id="jsGrid"></div>
<script src="http://js-grid.com/js/jsgrid.min.js"></script>
<script src="hosts.js"></script>
</body>
</html>
JSON:
{
"networks": [
{
"id": "dc34ec44-aba0-4a9c-9ea0-cbacf48a15e4",
"ip": "192.168.0.4",
"mac": "8c:85:90:ae:10:24",
"packets_received": 74,
"packets_sent": 97,
"data_sent": 1352,
"data_received": 1076
},
{
"id": "b367bc81-b6d0-4c10-86e0-f7394bf2489e",
"ip": "192.168.0.7",
"mac": "00:d0:2d:e9:ae:88"
},
{
"id": "d46f11d4-e384-42b3-95d4-5eadc19b6552",
"ip": "192.168.0.8",
"mac": "34:93:42:06:01:4c"
},
{
"id": "47da3cb0-ee30-44ad-a1c3-bbf542ffeae3",
"ip": "17.249.121.246",
"mac": "f8:a0:97:87:11:0e",
"packets_received": 18,
"packets_sent": 7,
"data_sent": 156,
"data_received": 256
}
]
}
JS:
$(function() {
$("#jsGrid").jsGrid({
width: "auto",
height: "auto",
filtering: true,
editing: false,
sorting: true,
paging: true,
pageLoading : true,
controller: {
loadData: function (filter) {
return $.ajax({
type: "GET",
url: "http://localhost:4000/networks",
data: filter,
dataType: "json"
});
}
},
data: filter,
fields: [
{ name: "ip", type: "text", width: 100 },
{ name: "mac", type: "text", width: 100 },
{ name: "packets_received", type: "number", width: 20 },
{ name: "packets_sent", type: "number", width: 20 },
{ name: "data_received", type: "number", width: 20 },
{ name: "data_sent", type: "number", width: 20 },
]
})
})
Error:
jquery-3.4.1.min.js:2 Uncaught ReferenceError: filter is not defined
at HTMLDocument.<anonymous> (hosts.js:24)
at e (jquery-3.4.1.min.js:2)
at t (jquery-3.4.1.min.js:2)