我无法使用带有 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?

Google Chrome、JQuery 和带有键的无法解释的事件行为

带有下一个/上一个按钮的 Jquery 图像库无法正常工作