我无法使用带有 jquery 的 Handsontable 加载数据
Posted
技术标签:
【中文标题】我无法使用带有 jquery 的 Handsontable 加载数据【英文标题】:I can't load data with Handsontable with jquery 【发布时间】:2016-03-31 21:25:00 【问题描述】:我正在用 Django(在后端使用 Django Rest Framework)和前端(带有 Jquery 的 django 模板)开发一个应用程序。我已经尝试在 Handsontable 库中加载信息,但是当我尝试加载时它显示了错误消息。
未捕获的错误:loadData 只接受对象数组或 数组(给定字符串)
我的json是:
"description": "[\"data\": \"CEA\", \"type\": \"text\", \"data\": \"CROTAL\", \"type\": \"text\", \"data\": \"NOMBRE\", \"type\": \"text\", \"data\": \"D. NACIMIENTO\", \"type\": \"text\", \"data\": \"D. PARTO\", \"type\": \"text\", \"data\": \"NP\", \"type\": \"text\", \"data\": \"D. ANALISIS\", \"type\": \"text\", \"data\": \"NC\", \"type\": \"text\", \"data\": \"LECHE\", \"type\": \"text\", \"data\": \"%G\", \"type\": \"text\", \"data\": \"%P\", \"type\": \"text\", \"data\": \"RCS\", \"type\": \"text\", \"data\": \"DIAS\", \"type\": \"text\", \"data\": \"LE AC\", \"type\": \"text\", \"data\": \"%G AC\", \"type\": \"text\", \"data\": \"%P AC\", \"type\": \"text\"]",
"typeset": 0,
"titles": "[\"CEA\", \"CROTAL\", \"NOMBRE\", \"D. NACIMIENTO\", \"D. PARTO\", \"NP\", \"D. ANALISIS\", \"NC\", \"LECHE\", \"%G\", \"%P\", \"RCS\", \"DIAS\", \"LE AC\", \"%G AC\", \"%P AC\"]",
"ren": 3,
"error": 0,
"producciones": "[\"cea\": 2785658758, \"crotal\": \"ES025986548856\", \"nombre\": 8856, \"fchNaci\": \"None\", \"dparto\": \"2014-09-01 00:00:00\", \"np\": 2, \"danalisis\": \"2014-12-15 00:00:00\", \"nc\": 0.2, \"leche\": 32, \"pg\": 3.75, \"pp\": 3.27, \"rcs\": 201, \"dias\": 81, \"le_ac\": 2870, \"pgac\": 4.41, \"ppac\": 3.24, \"cea\": 2785658758, \"crotal\": 2785658758, \"nombre\": \"1111 MALU\", \"fchNaci\": \"None\", \"dparto\": \"2014-01-15 00:00:00\", \"np\": 3, \"danalisis\": \"2014-12-15 00:00:00\", \"nc\": 0.9, \"leche\": 36.5, \"pg\": 2.88, \"pp\": 3.28, \"rcs\": 21, \"dias\": 165, \"le_ac\": 11286, \"pgac\": 5.15, \"ppac\": 3.45]",
"col": 13
而我在 Jquery 中的功能是:
function processHandsontable(data)
var hstSelctors = ["#gridxls", "#xlssal"];
var content = JSON.parse(data);
var $container;
if (content.error != 0)
sweetAlert("Error", "No information", "error");
else
$container = $(hstSelctors[content.typeset]);
var datos = content.producciones;
$container.handsontable(
startRows: content.ren,
startCols: content.col,
colHeaders: content.titles,
columns: content.description,
data: datos
);
不知道哪里出错了
【问题讨论】:
你知道错误所在的行号吗? 错误位于data: datos
正如错误消息所说,datos
应该是对象数组或数组数组。目前它是一个 json 对象。用[ ]
包装那个 json 对象,使它成为一个 json 数组
@SG_ 谢谢你,有了你的回答我可以看到我不需要[]的问题,只需转换为对象数组。
【参考方案1】:
正如错误消息所说,datos
应该是对象数组或数组数组。目前它是一个 json 对象。在 handsontable()
函数的选项中使用 json 数组作为 data
。像这样更改datos
[
"description": "[\"data\": \"CEA\", \"type\": \"text\", \"data\": \"CROTAL\", \"type\": \"text\", \"data\": \"NOMBRE\", \"type\": \"text\", \"data\": \"D. NACIMIENTO\", \"type\": \"text\", \"data\": \"D. PARTO\", \"type\": \"text\", \"data\": \"NP\", \"type\": \"text\", \"data\": \"D. ANALISIS\", \"type\": \"text\", \"data\": \"NC\", \"type\": \"text\", \"data\": \"LECHE\", \"type\": \"text\", \"data\": \"%G\", \"type\": \"text\", \"data\": \"%P\", \"type\": \"text\", \"data\": \"RCS\", \"type\": \"text\", \"data\": \"DIAS\", \"type\": \"text\", \"data\": \"LE AC\", \"type\": \"text\", \"data\": \"%G AC\", \"type\": \"text\", \"data\": \"%P AC\", \"type\": \"text\"]",
"typeset": 0,
"titles": "[\"CEA\", \"CROTAL\", \"NOMBRE\", \"D. NACIMIENTO\", \"D. PARTO\", \"NP\", \"D. ANALISIS\", \"NC\", \"LECHE\", \"%G\", \"%P\", \"RCS\", \"DIAS\", \"LE AC\", \"%G AC\", \"%P AC\"]",
"ren": 3,
"error": 0,
"producciones": "[\"cea\": 2785658758, \"crotal\": \"ES025986548856\", \"nombre\": 8856, \"fchNaci\": \"None\", \"dparto\": \"2014-09-01 00:00:00\", \"np\": 2, \"danalisis\": \"2014-12-15 00:00:00\", \"nc\": 0.2, \"leche\": 32, \"pg\": 3.75, \"pp\": 3.27, \"rcs\": 201, \"dias\": 81, \"le_ac\": 2870, \"pgac\": 4.41, \"ppac\": 3.24, \"cea\": 2785658758, \"crotal\": 2785658758, \"nombre\": \"1111 MALU\", \"fchNaci\": \"None\", \"dparto\": \"2014-01-15 00:00:00\", \"np\": 3, \"danalisis\": \"2014-12-15 00:00:00\", \"nc\": 0.9, \"leche\": 36.5, \"pg\": 2.88, \"pp\": 3.28, \"rcs\": 21, \"dias\": 165, \"le_ac\": 11286, \"pgac\": 5.15, \"ppac\": 3.45]",
"col": 13
]
【讨论】:
以上是关于我无法使用带有 jquery 的 Handsontable 加载数据的主要内容,如果未能解决你的问题,请参考以下文章
带有cordova的ios上的Jquery .text()无法正常工作
无法在标头中使用带有 JQuery 的 omnipay 重定向到贝宝
Rails 无法正确解码来自 jQuery 的 JSON(数组变成带有整数键的散列)
使用带有 vuejs 的 jquery 插件,没有 webpack?