Morris.js 未捕获类型错误:无法读取未定义的属性“匹配”

2023-12-20

我对此失去了理智,无法弄清楚这个问题。我使用以下代码使用 morris.js 渲染图表,但不断收到“未捕获的类型错误:无法读取未定义的属性‘匹配’”错误。 javascript和php代码如下,我将php json输出到控制台并将其粘贴到此->在此输入链接描述 http://jsbin.com/uqawig/441/embed?javascript,live有用!但它不在我的代码中(我已经从使用示例和 jsbin 中很好地复制了它)

HTML

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
    <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    <script src="http://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.0/morris.js"></script>
    <meta charset=utf-8 />
    <title>Temperature Monitor</title>
</head>
<body>
<h3 style="text-align: center">Temperature Monitor</h3>
<div id="tempMonitor"></div>
<script src="aquaponics.charts.js"></script>
</body>
</html>

脚本语言

function getSensorData() {

    var dataSet;
    $.ajax({
        type: "POST",
        url: "sensor-data.php",
        data: { waterTemperature: true },
        async: false,
        success: function(data) {
            dataSet = data;
        }
    });

    return dataSet;
}

var dataSet = getSensorData();

var chart = Morris.Line({
    element: 'tempMonitor',
    data: [0, 0],
    xkey: 'datetime',
    ykeys: ['temp_c'],
    labels: ['Series A', 'Series B']
});

chart.setData(dataSet);

PHP(传感器数据.php)

<?php
require('app-config.php');

    $limit = query_limit;

    $stmt = $dbh->prepare('SELECT * FROM sensor_waterTemperature ORDER BY id DESC');
    $stmt->execute();

    echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));

JSON 输出(来自sensor-data.php)

[{"id":"590","datetime":"2014-07-06 19:05:24","temp_c":"26.25","temp_f":"79.25"},{"id":"589","datetime":"2014-07-06 19:00:14","temp_c":"26.31","temp_f":"79.36"},{"id":"588","datetime":"2014-07-06 18:55:13","temp_c":"26.31","temp_f":"79.36"},{"id":"587","datetime":"2014-07-06 18:50:12","temp_c":"26.31","temp_f":"79.36"},{"id":"586","datetime":"2014-07-06 18:45:11","temp_c":"26.31","temp_f":"79.36"},{"id":"585","datetime":"2014-07-06 18:40:10","temp_c":"26.38","temp_f":"79.48"},{"id":"584","datetime":"2014-07-06 18:35:09","temp_c":"26.38","temp_f":"79.48"},{"id":"583","datetime":"2014-07-06 18:30:08","temp_c":"26.38","temp_f":"79.48"},{"id":"582","datetime":"2014-07-06 18:25:07","temp_c":"26.38","temp_f":"79.48"},{"id":"581","datetime":"2014-07-06 18:20:06","temp_c":"26.38","temp_f":"79.48"},{"id":"580","datetime":"2014-07-06 18:15:05","temp_c":"26.38","temp_f":"79.48"},{"id":"579","datetime":"2014-07-06 17:17:44","temp_c":"26.38","temp_f":"79.48"},{"id":"578","datetime":"2014-07-06 18:07:48","temp_c":"26.38","temp_f":"79.48"}]

UPDATE我做了更多调试,发现错误发生在 morris.js:598 上(见下文)。

Morris.parseDate = function(date) {
    var isecs, m, msecs, n, o, offsetmins, p, q, r, ret, secs;
    if (typeof date === 'number') {
      return date;
    }
    m = date.match(/^(\d+) Q(\d)$/); **<<< RIGHT HERE**
    n = date.match(/^(\d+)-(\d+)$/);
    o = date.match(/^(\d+)-(\d+)-(\d+)$/);

UPDATE 2我也尝试过这个,并且出现同样的错误。

脚本语言

function getSensorData() {

    $.ajax({
        type: "POST",
        url: "sensor-data.php",
        data: { waterTemperature: true },
        async: false,
        success: function(data) {

            Morris.Line({
                element: 'tempMonitor',
                data: data,
                xkey: 'datetime',
                ykeys: ['temp_c'],
                labels: ['Series A', 'Series B']
            });
        }
    });
}

getSensorData();

PHP

<?php
require('app-config.php');

    $limit = query_limit;

    $stmt = $dbh->prepare('SELECT * FROM sensor_waterTemperature ORDER BY id DESC');
    $stmt->execute();

    //echo json_encode($stmt->fetchAll(PDO::FETCH_ASSOC));
    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo '{ datetime: \''.$row['datetime'].'\', temp_c: '.round($row['temp_c'], 2).' },';
    }

我遇到了完全相同的问题,最后发现问题出在解析 Json 对象上。 在您的情况下,它可能与发送空对象值有关,并且“匹配”无法识别“日期”值。

总的来说,错误是说“未定义”值正在传递给 Morris.js 的子方法,因此解决此问题的一个好方法(对我来说)可以跟踪您的对象值以了解空值传递到的位置到“匹配”方法。

希望能帮助到你。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Morris.js 未捕获类型错误:无法读取未定义的属性“匹配” 的相关文章

  • JQuery Mobile 与 MVC 的链接

    我正在使用 ASP NET MVC 3 和 Razor UI 设置 JQuery 移动网站 我正在生成我的链接 例如 a href See Group 2 a 假设我从 Home Index 访问它 我遇到的问题是 当我点击链接时 它会出现
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • jQuery:处理 getJSON() 中的错误?

    使用 jQuery 时如何处理 500 错误getJSON http api jquery com jQuery getJSON 有几个关于错误处理的问题getJSON and https stackoverflow com questio
  • 如何格式化 Json 输出

    请帮助我如何获取 JSON 输出 如下所示 costMethod Average fundingDate 2008 10 02 fundingAmount 2510959 95 代替 type sma costMethod Average
  • 使用 CSS 或 Javascript 填充动画

    我只是想知道是否可以使用 CSS 或 javascript 创建填充动画 基本上我想创建一个填充动画 如下图所示 http i40 tinypic com eit6ia png http i40 tinypic com eit6ia png
  • 如何解决 Typescript 构建中的错误“找不到模块 'jquery'”

    我目前在 ts 文件的顶部有这个import require jquery 我这样做是因为我试图在我的打字稿文件中使用 jquery 但我似乎无法编译它 因为它返回标题中所述的错误 我正在使用 ASP NET CORE 脚本文件夹 tsco
  • PHP 中的 -> 和 :: 有什么区别?

    这个东西困扰我好久了 一直找不到 在 php 中使用 和 gt 之间的类有什么区别 让我举个例子 想象一个名为 MyClass 的类 该类中有一个函数 myFunction 使用有什么区别 MyClass myclass new MyCla
  • 雄辩的第一个 where 子句

    我想知道 Laravel 如何实现雄辩的语法 以便可以静态调用第一个 where 子句User where User where id 23 gt where email email gt first 他们有吗public static f
  • 使用 php/regex 验证美国电话号码

    EDIT 我混合并修改了下面给出的两个答案 以形成完整的功能 现在它可以完成我想要的功能 然后是一些 所以我想我会将其发布在这里 以防其他人来寻找同样的东西 Function to analyze string against many p
  • Javascript 假值(null、未定义、false、空字符串:“”或 '' 和 0)和比较(==)运算符 [重复]

    这个问题在这里已经有答案了 当我使用任何一个值时 null undefined false 0 in a if陈述 它总是被评估为谬误 false 另外 这些值的否定 null undefined false 0 in a if语句总是被评
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 从数据库检查数据的异步解决方案各种循环子句

    我想要做的是异步检查数据库并从中获取结果 在我的应用程序中我试图实现Asynchronously将此步骤解决为 从数据库中检查手机号码JsonArray循环子句的种类 Create JsonArray从结果 打印创建的数组 我学到了足够多的
  • 在移动设备上滚动

    这个问题更多的是一个建议研究 我确实希望它对其他人有帮助 并且它不会关闭 因为我不太确定在哪里寻求有关此事的建议 在过去的 6 个月里 我一直在进行移动开发 我有机会处理各种设备上的各种情况和错误 最麻烦的是滚动问题 当涉及到在网站的多个区
  • PHP 拒绝从 var_dump、print 等输出数据

    我目前正在运行 WAMP 服务器 并且在过去的 30 分钟内一直在尝试弄清楚我的项目如何以及为什么不会输出任何指定的 PHP 数据 起初我以为是因为我有一个 htaccess文件的output buffering被禁用 所以我删除了它 仍然
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • PayPal 网关已拒绝请求。安全标头无效(#10002:安全错误 Magento

    在 magento 中增加 PayPal 预付款 我已填写 magento admin 中的所有凭据 但是当我进入前端并单击 pay pal 按钮时 它给出了 PayPal 网关已拒绝请求 安全标头无效 10002 安全错误 我用谷歌搜索了
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • Javascript Replace() 和 $1 问题

    我正在尝试创建一个脚本来搜索文本中的模式并在它找到的字符串周围包裹一个标签 shop attributes td each function this html function i html return html replace E 0
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 如何使用asm.js进行测试和开发?

    最近我读到asm js规范 看起来很酷 但是是否有任何环境 工具来开发和测试这个工具 这还只是处于规范阶段吗 您可以尝试使用 emscripten 和 ASM JS 1 并从侧分支在 firefox 构建中运行它 有关 asm js 的链接

随机推荐

  • Echo 将我的制表符更改为空格

    我将来自网络的以下结构作为如何在 BASH 中读取文件的基本示例 cat inputfile txt while read line do echo line done 不过 我的 inputfile txt 是制表符分隔的 并且上述命令中
  • 何时索引、在 Mongoid 中索引什么?

    我对索引有点陌生 但我对索引的用例很好奇 我认为它使对索引字段的查询速度更快 是否有确定索引内容和何时索引的标准 我应该期望获得什么样的性能优势 特别是在 Rails 应用程序上将 Mongoid 与 MongoDb 结合使用 查看Inde
  • 如何停止 goroutine [重复]

    这个问题在这里已经有答案了 我有一个调用函数的 goroutine 并且有一个特殊参数 我想启动或停止这个 goroutine 我的问题是这段代码永远不会停止我的 goroutine 它每次都会创建一个新作业 quit make chan
  • TextView Marquee 不起作用[重复]

    这个问题在这里已经有答案了 我尝试过使用选框但不起作用 这是我的代码 请让我知道哪里出了问题
  • 单击标记时,Google 地图 v3 打开最后一个信息窗口

    我有一个共享的infoWindow对于我所有的标记 如果我使用 jquery 的话效果很好 each function 但是如果我将其更改为 JavaScrips 的本机 for 或 while 循环 则它不会按预期工作 每当我单击一个标记
  • 为什么它返回一个随机值而不是我给函数的值?

    在C程序中 有一个交换函数 该函数采用一个名为x的参数 我希望它通过更改主函数内交换函数中的x值来返回它 当我将参数视为变量时 我想要它 但是当我直接为参数设置整数值时 程序会产生随机输出 include
  • 与 Nodejs Express 共享 Laravel 4 会话

    我正在尝试从 NodeJS 上标头的 Cookie 中获取 Laravel 会话 ID 到目前为止我已经尝试过 function nodeDecrypt data key iv var decipher crypto createDecip
  • 使用 CQL 3.0 在集合上创建自定义索引

    我一直在关注CQL 3 0数据建模文档 http www datastax com documentation cql 3 0 webhelp cql ddl ddl anatomy table c html concept ds qqw
  • 禁用数据库访问

    我创建了一个 MySQL 服务器 现在用户login可以访问所有数据库 我希望该用户无法访问 因此无法执行任何操作 3 个数据库 information schema mysql phpmyadmin 所以用户可以使用除这 3 个之外的所有
  • GCC 接受 `constexpr struct {} s;`,但 Clang 拒绝它。谁是正确的?

    以下代码可以使用 GCC 正常编译 constexpr struct s 但 Clang 拒绝了它 并出现以下错误 错误 默认初始化 const 类型 const struct anonymous struct at 对象 而没有用户提供的
  • Docker Compose 中的无效类型错误

    我在 Docker Compose 中遇到错误 撰写文件是 version 2 services api build context dockerfile webapi dockerfile ports 210 web build cont
  • 无法在 app.module 中导入 MatDialogModule

    我是角度初学者 我正在使用角度材质对话框 首先 我向我的项目添加了材料并使用它 angular material 当我添加 import MatDialogModule from angular material dialog in app
  • Django 的 classonly 方法有什么用? [复制]

    这个问题在这里已经有答案了 源代码如下 class classonlymethod classmethod def get self instance owner if instance is not None raise Attribut
  • 如何使用Java Swing实现可拖动选项卡?

    如何使用 Java Swing 实现可拖动选项卡 我想将选项卡拖放到不同位置以重新排列选项卡 而不是静态 JTabbedPane EDIT Java 教程 拖放和数据传输 http java sun com docs books tutor
  • AngularJS,ng-repeat 和 ng-include 不渲染

    你好 我开始学习 Angular 当我结合使用 ng repeat 和 ng include 时遇到了问题 无论我做什么 我都无法渲染模板 我有一个简单的控制器 用于创建工作区列表 每个工作区都有一个 TemplateUrl 属性 我知道该
  • Chrome 中比 translateZ(0) 更好的解决方案来解决子像素边框图像缩放问题

    我遇到了边界图像切片线显示在使用 Transform scale 放大的元素上的问题 如下所示 这似乎只发生在 Chrome 中 通过阅读其他帖子 这似乎是 Chrome 子像素渲染问题 我尝试过 backface visibility h
  • ColdFusion CFC CORS 和 AJAX 帖子

    我正在尝试将表单发布到远程服务器 目前的总体思路是 HTML 将在本地运行并通过 AJAX 发布到远程服务器 因此有一个表单 JS 和它要发布到的 CFC 下面是JS document ready function submit click
  • 如何在 Swagger 规范中接收动态响应

    我想通过我的 API 从我的数据库请求一个表 但是 我不知道该表将有多少列 也不知道它将包含什么 我如何在 Swagger 中指定这一点 这就是我想做的 paths reports id get summary Detailed resul
  • 来自 DataFrame 的 Dask 数组

    有没有一种方法可以轻松地将数值数据帧转换为数组 如同values使用 pandas DataFrame 我似乎找不到任何方法来使用提供的 API 来执行此操作 但我认为这是一个常见的操作 编辑 是的 现在这是微不足道的 您可以使用 valu
  • Morris.js 未捕获类型错误:无法读取未定义的属性“匹配”

    我对此失去了理智 无法弄清楚这个问题 我使用以下代码使用 morris js 渲染图表 但不断收到 未捕获的类型错误 无法读取未定义的属性 匹配 错误 javascript和php代码如下 我将php json输出到控制台并将其粘贴到此 g