【问题标题】:How to resolve TypeError: Cannot read property 'total' of undefined如何解决 TypeError:无法读取未定义的属性“总计”
【发布时间】:2017-07-26 04:30:32
【问题描述】:

我不知道如何解决我的问题。我收到此错误: angular.js:14328 TypeError: Cannot read property 'total' of undefined

每次我开始搜索查询时都会收到此错误。

我的data.php 与数据库配合得很好。解决此问题的最佳方法是什么。我不知道我必须在我的代码中查看哪里。

http://mida.uni-trier.de

【问题讨论】:

  • 错误清楚地说明了问题,您正在尝试获取未定义值的属性“总计”。我快速查看了您的代码,您没有检查它是否未定义,所以是的,这可能会发生。查看第 39 行的 app/services/search.js
  • 您的响应返回数据:{ error:"IndexAlreadyExistsException[[fud_mida] 已经存在]" status:400}
  • so result.data 像上面一样可用,但是 result.data.hits.total;无法使用。 hits 是未定义的,那么你如何得到总数。

标签: angularjs json elasticsearch typeerror


【解决方案1】:

每当您提出请求时,都会收到异常“IndexAlreadyExistsException[[fud_mida] 已存在]”和状态 400。您可以在“result.data”中看到它。

在“search.js”的第 39 行,您正在设置“result.data.hits.total”,其中“result.data”对象内没有“hits”。

即:data.total = result.data.hits.total; // 这里的命中不存在。

这就是为什么您收到错误“无法读取未定义的属性'total'”。

您可以在设置 data.total 之前处理异常或删除异常。

在控制台调试你的代码,你会很容易发现问题。

希望对您有所帮助。

【讨论】:

  • 我已经删除了 data.total = result.data.hits.total; 中的 .total ,现在它看起来像 data.total = result.data.hits; 。错误消失了,但如果我现在继续搜索,我不会得到任何结果
  • 查看返回的结果对象,它不包含任何命中,而您正在尝试设置命中,这就是您没有得到任何结果的原因。
猜你喜欢
  • 2018-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-25
  • 2022-07-06
  • 2019-05-21
  • 2021-05-17
  • 1970-01-01
相关资源
最近更新 更多