【问题标题】:Cannot read property of undefined in templates无法读取模板中未定义的属性
【发布时间】:2016-11-19 09:01:34
【问题描述】:

在我的组件模板中,我得到的输出是 [output:Output],但不是我想要的。我正在使用 @Output 从父容器发送一个对象

在我的模板中,当我尝试绑定{{selectedMovDetail|json}} 时,输出为{ "name": "The Walking Dead","rating":"8.6"}

但是当我尝试使用{{selectedMovDetail['name']}} 提取数据时,出现以下错误

当我尝试使用 Augury(chrome 调试工具)进行调试时,我得到了

现在我很困惑如何提取对象值。 非常感谢您对此提供任何帮助

【问题讨论】:

  • 你可以试试selectedMovDetail?.name而不是selectedMovDetail['name']吗?
  • 哦..它成功了..我们应该使用什么以及为什么要使用'?'
  • JsonPipe 可以处理初始情况,即数据只是尚未加载。您也可以使用 ngIf 解决此问题,或使用 AsyncPipe 解决提供数据的 observable。

标签: javascript json object angular


【解决方案1】:

使用:selectedMovDetail?.name 而不是 selectedMovDetail['name']

当您使用“elvis”运算符? 选择您的json 键时,如果找不到特定键或值尚未加载(仅在html 中),它不会抛出错误.

例如,在您的情况下:selectedMovDetail.name 在查看模板后存在,因此在 . 之前使用 ? 可确保在加载时打印名称。

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2022-10-24
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-06-20
    相关资源
    最近更新 更多