【问题标题】:TypeError with JSON data in ionic2ionic2中带有JSON数据的TypeError
【发布时间】:2017-01-14 00:42:29
【问题描述】:

在过滤 JSON 数据中的特定变量时,我有一个关于如何避免打字稿错误的问题。 我的部分 JSON 数据如下所示:

多媒体内容:

"per_facet": [],
"geo_facet": [],
"multimedia": [
{
"url": "https://static01.nyt.com/images/2016/09/07/world/06NYTNow-Obama2/06NYTNow-Obama2-thumbStandard-v2.jpg",
"format": "Standard Thumbnail"
},
{
"url": "https://static01.nyt.com/images/2016/09/07/world/06NYTNow-Obama2/06NYTNow-Obama2-thumbLarge-v2.jpg",
"format": "thumbLarge",
}]

另一个没有多媒体内容的元素:

"per_facet": [],
"geo_facet": [],
"multimedia": [],

如您所见,数组上的“多媒体”变量在数组中的一个元素上具有内部值,而在其他元素上则没有。

这就是我尝试检索该参数(这是一个图像)的方式。

<img [src]= "item.multimedia[0].url" *ngIf="item.multimedia[0].url.indexOf('http') === 0">

当我尝试读取多媒体数组的 url 参数时, 它会导致错误 ERR:“无法读取未定义的 URL”。 (这是完全可以理解的,因为没有数据可显示。) 这适用于 Javascript。我不知道如何解决这个问题。

如何避免此错误并成功从该数组中检索其他参数。

提前致谢。 苏雷什

【问题讨论】:

  • 请勿发布代码图片。
  • 这不应该是*ngIf?另外,您知道item.multimedia[0].?url 语法,对吗?
  • "这适用于 Javascript" 怎么样?访问 ([])[0] 会给你 undefined,当你使用 .url 时会导致该错误。

标签: arrays json typescript ionic2


【解决方案1】:

不要尝试直接访问该字段,而是先尝试检查它是否具有该项目。

你可以的

item.multimedia[0] && item.multimedia[0].url.indexOf('http') === 0

item.multimedia.length > 0 && item.multimedia[0].url.indexOf('http') === 0

我看不到你的整个代码,所以我可能是错的,但通常我会建议做一些不涉及单独索引的事情,这可能非常脆弱。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2018-03-15
    • 1970-01-01
    • 1970-01-01
    • 2018-12-04
    相关资源
    最近更新 更多